Чтение PDF-файлов с помощью php


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

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

Есть ли какой-нибудь способ сделать это с помощью PHP? (Или даже Ruby или Python, если это необходимо)

 43
Author: Ryan Doherty, 2009-06-17

5 answers

Проверьте 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

 30
Author: Jay, 2015-06-24 06:35:24

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

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

Http://www.pdfparser.org/

Гитхаб

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 (например, изображений).

 19
Author: kasper Taeymans, 2015-07-10 14:30:52

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

Pdftohtml

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

с абсолютными координатами положения. Похоже, это именно то, что вы пытаетесь сделать.
 0
Author: Rado, 2009-06-17 00:39:46

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

 0
Author: Mike, 2013-10-11 08:58:24

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

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

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

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

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

 0
Author: jmo, 2018-04-09 15:19:58