Бесплатный анализатор FPDI, поддерживающий версию PDF выше 1.4.

Существует ли бесплатный анализатор PDF с открытым исходным кодом, который может выполнить эту работу? Бесплатный анализатор, поставляемый с FPDI, поддерживает только версию PDF до 1.4. Я пробовал TCPDF, но это не сработало.

Я знаю, что могу изменить PDF-версию файла PDF через Acrobat, но при этом у меня возникла ошибка.

Я использую FPDI для водяных знаков PDF, которые мы продаем в нашей компании. Я заметил, что один из PDF-файлов, который я понизил до 1.4 с 1.7 через Acrobat, выглядит почти так же, но после того, как моя функция водяного знака будет выполнена, в PDF-файле будут пробелы в правой и нижней части моей титульной страницы, которая имеет черный фон. Короче говоря, PDF выглядел плохо для продажи после всего процесса.


person kevinandrada    schedule 14.06.2013    source источник


Ответы (4)


Я столкнулся с этим же ограничением в проекте, над которым сейчас работаю, и в итоге создал свой собственный синтаксический анализатор на основе синтаксического анализатора TCPDF, который работает с модифицированной версией FPDI под названием TCPDI и немодифицированную копию FPDF_TPL. Он работает с TCPDF 6 и поддерживает как минимум PDF 1.6 (у меня нет удобного PDF 1.7, чтобы попробовать, но я скоро поищу его, чтобы убедиться, что он работает).

Если вы все еще хотите это сделать, попробуйте TCPDI / tcpdi_parser — если у вас возникнут какие-либо проблемы, сообщите о них через Github, и я их рассмотрю. Основные инструкции по установке и использованию можно найти в TCPDI README.

person NullColaShip    schedule 01.10.2013
comment
Хорошо сделано ! Может ли он работать только с использованием FPDF? Я создал все свои PDF-файлы с помощью FDPF и не хочу пересматривать все свои функции, чтобы они соответствовали TCPDF. Спасибо. - person Vincent Decaux; 25.03.2014
comment
Ваш парсер (или tcpdi) защищает PDF-файлы паролем и разрешает только определенные разрешения? Я не видел этого в вашем коде, поэтому я не был уверен. - person mts7; 13.01.2016

FPDI позволяет обрабатывать файлы PDF до версии 1.4. Вы можете использовать GHOSTSCRIPT для преобразования любого PDF-файла в версию 1.4 перед его обработкой с помощью FPDI.

Пример кода доступен на моем официальном блоге веб-сайта по этой ссылке.

ОБНОВЛЕНИЕ –

Следуйте эту ссылку сейчас. Доменное имя изменено с webnius.com на infoconic.com.

person Infoconic    schedule 23.06.2018
comment
Веб-сайта этой ссылки больше нет, так что вот его архив обратного пути: fpdi-pdf-parser-that-supports-pdf-версия-выше-1-4/" rel="nofollow noreferrer">web.archive.org/web/20190415124533/http://www.webnius.com/blog/ - person ssfinney; 18.10.2019
comment
спасибо за полный практический пример по ссылке, было бы здорово, если бы вы создали общее решение и добавили к этому ответу здесь. - person Rakibul Haq; 26.11.2019

Я обошел это ограничение, используя pdftk для распаковки PDF-файла перед его загрузкой в ​​FPDI, а затем повторного сжатия с помощью pdftk.

Я искал платную лицензию для FPDI, но безмерно боролся, пытаясь скомпилировать и запустить ознакомительную версию, и потерял надежду/уверенность. В TCPDI отсутствовал какой-либо реальный путь установки, кроме разветвления или клонирования, и все они казались неоднородными в лучшем случае на PHP 7.4.

Решение выглядит примерно так, как только вы установили pdftk на свой компьютер:

$PDF = new Fpdi();
try {
    $PDF->setSourceFile('./pdf.pdf');
} catch (\Exception $exception) {
    if (aBoolFunctionToDetectThisParticularException($exception)) {
        exec('pdftk ./pdf.pdf output ./pdf_expanded.pdf uncompress');
        $PDF->setSourceFile('./pdf_expanded.pdf');
    } else {
        throw $exception;
    }
}

Если вы пошли по этому пути, рекомендуется выполнить повторное сжатие, поскольку разница в размере файла огромна.

exec('pdftk ./pdf_expanded.pdf output ./pdf_compressed.pdf compress');
person OK sure    schedule 12.08.2020

Из-за высокого результата Google при поиске на FPDI. Платная версия может делать выше 1.4:

https://www.setasign.com/products/fpdi-pdf-parser/details/

Когда вам нравится программное обеспечение, покупайте его, оно не выделяется, и вы помогаете разработчику. :)

person Patrick Rennings    schedule 15.01.2020
comment
Для меня 100$ это что-то. - person Adam; 16.06.2020