Преобразование PDF в строку

Как прочитать файл PDF и поместить содержимое в строку? Использование языка PHP.


person lolalola    schedule 24.01.2011    source источник
comment
Используйте file_get_contents, если вам нужны необработанные двоичные данные или обновите свой вопрос и расскажите нам, чего вы действительно хотите.   -  person Linus Kleen    schedule 24.01.2011
comment
Вам может быть полезно это руководство: webcheatsheet.com/php/reading_clean_text_from_pdf.php   -  person Vonder    schedule 24.01.2011
comment
Мне нужно получить чистый текст из файлов PDF. Когда я получаю текст из файлов PDF, мне нужно вставить этот текст в БД.   -  person lolalola    schedule 24.01.2011


Ответы (4)


Вы можете использовать что-то вроде pdftotext, который поставляется с пакетом Xpdf в Linux. Затем команду popen можно использовать для передачи вывода pdftotext в строку:

$mystring = "";
$fd = popen("/usr/bin/pdftotext blah.pdf","r");
if ($fd) {
    while (($myline = fgets($fd)) !== false) {
        $mystring .= $myline;
    }
}
person Matthew Smith    schedule 24.01.2011
comment
Ссылка для скачивания xpdf: xpdfreader.com/download.html и ссылка на popen: php.net/manual/en/function.popen.php - person kurdtpage; 09.11.2017

Нашел этот действительно хороший класс! Кроме того, вы можете добавить функциональность в соответствии с вашими потребностями.

Вероятно, это поможет вам добавить функциональность:

Если это не работает, проверьте, можете ли вы выделить/пометить свой текст при открытии в Adobe Reader (если нет, текст в вашем файле, вероятно, сохранен в виде геометрических кривых), проверьте также кодировку.

person advanced_noob    schedule 20.11.2012
comment
Этот скрипт у меня не работает - person Sunchock; 23.06.2020

Установите APACHE-TIKA на свой сервер. APACHE-TIKA поддерживает больше, чем файлы PDF. Руководство по установке: http://www.acquia.com/blog/use-apache-solr-search-files

и окончательный код прост:

$string = "";
$fd = popen("java -jar yourpathtotika/tika-app-1.3.jar -t yourpathtopdf/sample.pdf","r");
while (!feof($fd)) { 
$buffer = fgets($fd, 4096); 
$string .= $buffer;
}
echo $string;
person kentusaq    schedule 10.04.2013

Вы можете использовать класс PHP, который доступен здесь:

http://www.pdftotext.eu

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

include ( 'PdfToText.phpclass' ) ;
$pdf = new PdfToText ( 'mysample.pdf' ) ;
echo "PDF contents are : " . $pdf -> Text . "\n" ;
person Christian Vigh    schedule 27.08.2016
comment
Мертвая ссылка, вы имеете в виду pdftotext.com? Я не могу найти класс, о котором вы говорили - person Sunchock; 23.06.2020