Читайте PDF файлы с помощью PHP - PullRequest
48 голосов
/ 17 июня 2009

У меня есть большой PDF-файл, который представляет собой план здания. Он имеет слои для всей офисной мебели, включая текстовые поля с расположением сидений.

Моя цель - прочитать этот файл на PHP, найти в документе текстовые слои, получить их содержимое и координаты в файле. Таким образом, я могу планировать места сидений -> координаты х / у.

Есть ли способ сделать это через PHP? (Или даже Ruby или Python, если это то, что нужно)

Ответы [ 5 ]

31 голосов
/ 17 октября 2009

Проверить FPDF (с FPDI):

http://www.fpdf.org/

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 Parser

24 голосов
/ 23 января 2014

Существует библиотека php (pdfparser), которая делает именно то, что вы хотите.

веб-сайт проекта

http://www.pdfparser.org/

GitHub

https://github.com/smalot/pdfparser

Демонстрационная страница / API

http://www.pdfparser.org/demo

После включения 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 (например, изображения).

0 голосов
/ 09 апреля 2018

Ваш первоначальный запрос: «У меня большой PDF-файл, представляющий собой карту здания».

Боюсь сказать вам, что это может быть сложнее, чем вы думаете.

Причина последней известной библиотекой, которую все используют для разбора pdf, является smalot, и известно, что эта проблема связана с большим файлом.

Здесь также, Lookig для реальной библиотеки php для анализа pdf, без какого-либо пика памяти, который нуждается в конфигурации php для отключения ограничения памяти, как это делают многие «разработчики» (что, я думаю, на самом деле не рекомендуется).

см. Этот пост для более подробной информации о производительности smalot: https://github.com/smalot/pdfparser/issues/163

0 голосов
/ 11 октября 2013

Вы можете также попробовать это приложение http://pdfbox.apache.org/. Рабочий пример можно найти по адресу https://www.jinises.com

0 голосов
/ 17 июня 2009

Хм ... не совсем php, но вы можете вызвать программу из php для преобразования pdf во временный html-файл, а затем проанализировать полученный файл с помощью php. Я сделал нечто подобное для моего проекта, и это программа, которую я использовал:

PdfToHtml

Что здорово в программе, так это то, что она будет выплевывать текстовые элементы в тегах

с абсолютными координатами позиции. Похоже, это именно то, что вы пытаетесь сделать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...