Привет, я знаю о нескольких PDF- генераторах для php (fpdf, dompdf и т. Д.). Я хочу знать о синтаксическом анализаторе.
По причинам, не зависящим от меня, определенная информация мне нужна только в таблице внутри pdf, и мне нужно извлечь эту таблицу и преобразовать ее в массив.
Какие-либо предложения?
Я написал один раньше (для аналогичных потребностей), и я могу сказать следующее: получайте удовольствие. Это довольно сложная задача. Спецификация PDF большая и громоздкая. Существует несколько способов хранения текста внутри него. И кикер состоит в том, что каждый PDF-генератор отличается тем, как он работает. Таким образом, в то время как что-то вроде TFPDF или DOMPDF создает ДЕЙСТВИТЕЛЬНО легко читаемые PDF-файлы (с точки зрения машины), Acrobat создает действительно адские документы.
Причина в том, как он пишет текст. Большинство обработчиков, основанных на DOM, которые я использовал, пишут всю строку как одну строку и устанавливаем ее один раз (что очень легко читать). Acrobat пытается быть более эффективным (и это), записывая только одно или, может быть, несколько символов за раз, и позиционируя их независимо. Хотя это ДЕЙСТВИТЕЛЬНО упрощает рендеринг, это делает чтение намного сложнее.
Наверху здесь, что формат PDF сам по себе очень прост. У вас есть «объекты», которые следуют за регулярным синтаксисом. Затем вы можете связать их вместе для создания контента. Спецификация хорошо описывает описание формата файла. Но чтение в реальном мире займет немного мозговой силы …
Некоторые полезные советы, которые я должен был усвоить, если вы собираетесь написать это сами:
65
, скорее всего, не будет … Вам нужно найти объект карты и вывести, что он делает, исходя из того, какие символы там. И это эффективно, поскольку, если символ не отображается в документе для этого шрифта, он не включает его (что затрудняет жизнь, если вы пытаетесь программно редактировать PDF-файл) … strlen
. Используйте mb_strlen($string, '8bit')
поскольку он будет компенсировать разные наборы символов (и разрешить потенциально недопустимые символы в других кодировках). В противном случае, удачи …
Для этого я использую PDFBox ( http://pdfbox.apache.org/ ). Это программное обеспечение является независимым и независимым от платформы. Он работает быстро и надежно. Вы можете использовать его через exec или shell execute или через PHP / Java-Bridge ( http://php-java-bridge.sourceforge.net/ )
Вы уже посмотрели xpDF ? Существует программа, называемая pdftotext, которая будет выполнять преобразование. Вы можете вызвать его из PHP, а затем прочитать в текстовой версии PDF. Вам нужно будет иметь возможность запускать exec () или system () из php, поэтому это может не работать на всех хостинг-решениях.
Кроме того, на PHP-сайте есть несколько примеров, которые преобразуют PDF в текст, хотя и довольно грубый. Вы также можете попробовать некоторые из этих примеров. На этой странице PHP найдите luc в phpt dot org.
Взгляните на GhostScript или ITextSharp, есть разные кросс-платформенные версии обоих.
Zend_Pdf является частью Zend Framework . Их руководство гласит:
Компонент
Zend_Pdf
– это механизм манипуляции PDF (Portable Document Format). Он может загружать, создавать, изменять и сохранять документы. Таким образом, это может помочь любому PHP-приложению динамически создавать PDF-документы, изменяя существующие документы или генерируя новые с нуля.
На самом деле это не может быть таблицей внутри PDF, так как PDF теряет такую информацию …
Это PHP-парсер PHP, который существует в двух вариантах: