Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Существует библиотека 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

?>

Simular вы можете получить метаданные из PDF так же, как получить PDF-объекты (например, изображения).

Ответ 3

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

PdfToHtml

Что круто о программе, так это то, что она будет выплевывать текстовые элементы в <div> с абсолютными координатами положения. Похоже, это именно то, что вы пытаетесь сделать.