Как конвертировать PDF версии 1.5 в версию 1.4 в PHP

Как конвертировать PDF версии 1.5 в версию 1.4 в PHP? Может ли кто-нибудь указать мне в правильном направлении?

Ответ 1

У меня есть аналогичное требование, и я обнаружил, что Ghostscript может изменить версию PDF. Документация находится здесь: http://ghostscript.com/doc/current/Use.htm

Однако я не нашел ничего конкретного о параметре dCompatibilityLevel в документации. Скорее, я нашел эту статью, которая продемонстрировала ее использование: http://rohieb.wordpress.com/2012/06/09/use-ghostscript-to-convert-pdf-files/

Вот команда:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH 
  -sOutputFile=new-pdf1.5.pdf original.pdf

Ответ 2

вы можете легко конвертировать PDF версии 1.5 в 1.4. В настоящее время я работаю в той же ситуации, когда мне нужно конвертировать PDF-версию. я заметил в моем случае, что PDF, созданный из библиотеки dompdf, - это версия 1.3, и я использую последний mozilla firefox, но все же mozilla показывает черный экран, когда я пытаюсь прочитать мой PDF. (черный экран на любой странице моего многостраничного PDF файла, не все).

поэтому, когда мой dompdf генерирует PDF-версию 1.3, я преобразую его в версию 1.4, потому что 1.4 отлично подходит для моего браузера Mozilla и, действительно, для всех браузеров.

вы можете конвертировать PDF-версию, используя 2 способа.

1) используйте инструмент командной строки ghostscript

<?php
exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH 
  -sOutputFile=new.pdf old.pdf')
?>

2. используя библиотеку PHP, указанную в github. Загрузите его из здесь

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

Ответ 3

У меня была такая же проблема в течение многих лет, без переустановки каких-либо вещей, есть онлайн-конвертер: https://docupub.com/pdfconvert/

Ответ 4

Вот рабочий полный сценарий, не идеальный, но простой. Скрипт читает все pdf из c:\temp_in \, преобразует их и сохраняет как версию 1.4 в папке c:\temp_done. Возникли проблемы с путями к скрипту-призраку, поэтому путь полностью объявлен в shell_exec. Также добавлена некоторая отладка в скрипт путем реализации "2> & 1". (Очевидно, что ghost script требует установки.)

<?php
if ($handle = opendir("c:/temp_in/")) {
while (false !== ($file = readdir($handle))) {
    if ('.' === $file) continue;
    if ('..' === $file) continue;

    $result = shell_exec('"C:\Program Files\gs\gs9.27\bin\gswin64c" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -sOutputFile="c:\temp_done\\'.$file.'" "c:\temp_in\\'.$file.'" 2>&1');
    echo $result;

}
closedir($handle);
}
?>