Ошибка FPDF: этот документ (testcopy.pdf), вероятно, использует метод сжатия, который не поддерживается бесплатным парсером, поставляемым с FPDI.

Я запускаю следующий код и получаю эту ошибку: FPDF error: This document (testcopy.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI. Я использовал другой PDF-файл с именем test.pdf, и он работает нормально, но выдает ошибку в testcopy.pdf.

Я думаю, что это проблема парсера. Кто-нибудь знает какой-нибудь другой парсер, который можно использовать с fpdf, чтобы избежать этой ошибки?

Мой код:

require('fpdf17/fpdf.php'); 
require('fpdf17/fpdi.php'); 
// initiate FPDI 
$pdf = new FPDI(); 
while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);
// set the sourcefile 
$pagecount = $pdf->setSourceFile('testcopy.pdf');

Я хочу разделить PDF на два PDF-файла и хочу прикрепить оба PDF-файла в поле вложения файлов. Как сохранить PDF-файл на сервер. Возможно ли это с помощью fpdf?


person Community    schedule 28.08.2012    source источник
comment
Я не сталкивался с такой проблемой раньше. Кстати, вот похожий вопрос, который может помочь: which" title="fpdf error this document my pdf вероятно использует метод сжатия, который">stackoverflow.com/questions/5441107/   -  person Mukesh Chapagain    schedule 29.08.2012
comment
спасибо .. я проверил этот вопрос, но мне это не помогло .. я хочу знать, можно ли использовать какой-либо парсер с fpdf ??? Я думаю, что Fpdi не поддерживает все форматы PDF.   -  person    schedule 29.08.2012


Ответы (9)


Да, именно библиотека FPDF поддерживает только PDF версии 1.4 и ниже. Чтобы решить эту проблему, используйте GhostScript. Этот скрипт помогает динамически изменять версии PDF.

(1) Загрузите Ghostscript здесь.

(2) Установите Ghostscript и определите переменную среды PATH.

(3) Затем используйте приведенный ниже PHP-код, чтобы изменить версию PDF.

shell_exec( "gswin32 -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=".$new_pdf." ".$old_pdf.""); 

(4) Теперь мы получаем PDF с версией 1.4 в качестве вывода, затем продолжаем работу с FPDF.

Наслаждаться!

person selva kumar    schedule 10.04.2015
comment
Спасибо за это ! Мне пришлось изменить gswin32 на gs, чтобы это сработало. - person Laurie Clark; 26.02.2016
comment
Что вы подразумеваете под определением переменной окружения PATH? Заранее спасибо. - person Marsha; 06.12.2016
comment
@Marsha Это означает, что вы должны добавить путь к исполняемому файлу ghostscript в переменную PATH в вашей ОС Windows. поиск по этому ключевому слову, и он скажет вам, как. добавление пути к окнам - person kebyang; 02.01.2017
comment
Это должно быть помечено как ответ, это пока самый лучший снимок, который я видел. - person nbonniot; 03.10.2017
comment
эта ссылка показывает, как это делается, используя полный практический пример, это может кому-то помочь: infoconic.com/blog/ - person Rakibul Haq; 26.11.2019

Файл должен быть PDF 1.4 (Acrobat 5) или ниже. Если у вас есть Adobe Acrobat Pro, вы можете изменить это с помощью Документ-> Уменьшить размер файла.

person shalamos    schedule 12.09.2012

У меня была та же проблема, что PDFMerger не работает с определенным PDF. Похоже, что Adobe продолжает обновлять способ сжатия расширения pdf.

Я нашел решение с Chrome.

1. Open the PDF file(which does not work with PDFMerger) with Chrome
2. Right Click and Print
3. Change destination as [Save as PDF]
4. This exported PDF file is compatible with PDFMerger
person John    schedule 13.09.2017
comment
Раньше я использовал Ghostscript для этого, но это действительно работает, намного удобнее. Спасибо! - person Matt; 19.06.2018
comment
Работа для меня, очень хорошо - person Doberon; 22.03.2021
comment
У меня тоже сработало, спасибо. - person NikoCon; 09.04.2021
comment
Простое решение для отличного, спасибо! - person Trần Hữu Hiền; 24.07.2021

Просматривая ответы до сих пор, я не смог решить проблему. Вот почему, и у вас может быть такая же проблема, поэтому этот ответ будет неоценим и для вас.

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

В конце концов, я использовал онлайн-конвертер PDF для перехода на версию 5 (1.4).

Если вы не можете найти его, вот ссылка для полноты.

https://docupub.com/pdfconvert/

(имейте в виду, что содержание ссылки может измениться)

person Mark N Hopgood    schedule 15.02.2016
comment
Это должен быть принятый ответ. Пока самый простой подход. - person HerrimanCoder; 23.10.2018

Вот мой ответ из другой темы:

«Это можно решить, повторно сохранив шаблон и изменив тип сжатия. В Adobe Acrobat Pro выберите «Файл» -> «Сохранить как» -> «Оптимизированный PDF» -> «Всплывающий левый список» — «Очистить», «Параметры сжатия объекта» -> «Изменить на «Сжать документ». структура" -> ОК, чтобы сохранить"

Ссылка Редактирование PDF-файлов, защищенных паролем, с помощью fpdi

person Anton Mitsev    schedule 14.12.2012

Для тех, у кого нет профессиональных версий Acrobat:

У меня возникла эта проблема с новыми версиями Word, когда я пытался использовать функции Office для сохранения в PDF. Похоже, что инструмент преобразования PDF, поставляемый в составе Office, использует более новые форматы. Вот как я это исправил.

  • Установите бесплатную версию NitroPDF (может работать с другим бесплатным редактором PDF, который можно загрузить)
  • Перейдите в документ Word и выберите «Печать».
  • В параметрах печати вместо вашего принтера выберите «Nitro PDF Creator (Reader 3)» или другую текущую версию.
  • Откроется диалоговое окно, в котором вы сможете выбрать, где сохранить PDF.

Сохраненную версию можно было открыть с помощью FPDF.

Надеюсь, поможет

person Michael Nass    schedule 18.08.2013
comment
Chrome, кажется, делает то же самое, открывает в Google Chrome и печатает в формате PDF. - person Shocker; 01.10.2019

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

Надеюсь, этот простой трюк вам поможет!

person rekire    schedule 01.09.2012
comment
я знаю, что спрашивал о другом синтаксическом анализаторе, который можно использовать с fpdf, который поддерживает все типы версий. - person ; 01.09.2012

В случае Mac вы можете открыть файл PDF в режиме предварительного просмотра и экспортировать в формате PDF. Затем можно использовать экспортированный.

person Richter    schedule 09.11.2020

GPL Ghostscript 8.70 (31 июля 2009 г.) / Centos 7

ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=new_file.pdf file.pdf
person BX16Soupapes    schedule 23.06.2021