Чтение PDF-файлов с помощью php
У меня есть большой PDF-файл, представляющий собой карту этажа здания. В нем есть слои для всей офисной мебели, включая текстовые поля расположения сидений.
Моя цель - прочитать этот файл с помощью PHP, найти в документе текстовые слои, получить их содержимое и координаты в файле. Таким образом, я могу наметить расположение сидений - > координаты x/y.
Есть ли какой-нибудь способ сделать это с помощью PHP? (Или даже Ruby или Python, если это необходимо)
5 answers
Проверьте FPDF (с FPDI):
Http://www.setasign.de/products/pdf-php-solutions/fpdi/
Они позволят вам открыть pdf-файл и добавить в него содержимое на PHP. Я предполагаю, что вы также можете использовать их функциональность для поиска в существующем контенте нужных вам значений.
Другая возможная библиотека - TCPDF: http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
Обновите, чтобы добавить еще современная библиотека: Анализатор PDF
Существует библиотека php (pdfparser), которая делает именно то, что вы хотите.
Веб-сайт проекта
Гитхаб
Https://github.com/smalot/pdfparser
Демонстрационная страница/api
После включения pdfparser в свой проект вы можете получить весь текст из mypdf.pdf
примерно так:
<?php
$parser = new \installpath\PdfParser\Parser();
$pdf = $parser->parseFile('mypdf.pdf');
$text = $pdf->getText();
echo $text;//all text from mypdf.pdf
?>
Аналогично вы можете получить метаданные из pdf, а также получение объектов pdf (например, изображений).
Хм... не совсем php, но вы можете вызвать программу с php, чтобы преобразовать pdf во временный html-файл, а затем проанализировать полученный файл с помощью php. Я сделал нечто подобное для своего проекта, и вот программа, которую я использовал:
Что круто в программе, так это то, что она будет выдавать текстовые элементы в тегах
Возможно, вы также захотите попробовать это приложение http://pdfbox.apache.org /. Рабочий пример можно найти по адресу https://www.jinises.com
Ваш первоначальный запрос: "У меня есть большой PDF-файл, который представляет собой карту этажа здания. "
Я боюсь сказать вам, что это может быть сложнее, чем вы думаете.
Причина последней известной библиотекой, которую все используют для анализа pdf, является smalot, и известно, что она сталкивается с проблемой, связанной с большим файлом.
Здесь также ищите настоящую библиотеку php для анализа pdf, без какого-либо пика памяти, для которого требуется конфигурация php для отключения ограничения памяти, как это делают многие "разработчики" (что я догадываться действительно не рекомендуется).
Смотрите этот пост для получения более подробной информации о производительности smalot: https://github.com/smalot/pdfparser/issues/163