Ошибка 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?
Ответы
Ответ 1
Да, точно библиотека FPDF поддерживает только PDF версии 1.4 и меньше. Поэтому, чтобы исходить из этой проблемы, используйте GhostScript. Этот script позволяет динамически изменять версии 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.
Наслаждайтесь!
Ответ 2
Файл должен быть PDF 1.4 (Acrobat 5) или ниже. Если у вас есть Adobe Acrobat Pro, вы можете изменить это с помощью Document- > Decrease File Size.
Ответ 3
Вот мой ответ из другой темы:
"Его можно преодолеть, повторно сохранив шаблон и изменив тип сжатия.
В Adobe Acrobat Pro перейдите в меню Файл- > Сохранить как- > Оптимизированный PDF- > Всплывающий список слева - Очистить,
Параметры сжатия объекта → Изменить на "Сжать структуру документа" → ОК, чтобы сохранить "
Ref. Редактирование PDF файлов с защитой паролем с помощью fpdi
Ответ 4
Просматривая ответы до сих пор, я не смог решить проблему.
Вот почему и у вас может быть такая же проблема, поэтому этот ответ будет для вас также неоценим.
У меня не было доступа к acrobat, поэтому я не мог отказаться от версии исходного PDF. Я не был в состоянии купить более новую версию библиотеки, которая обновила шифрование.
В итоге я использовал онлайн-конвертер PDF для перехода на версию 5 (1.4)
Если вы не можете найти его, здесь ссылка на полноту.
https://docupub.com/pdfconvert/
(помните, что содержимое ссылки может измениться)
Ответ 5
У меня была очень похожая ошибка, как и вы. Мое решение состояло в том, чтобы преобразовать PDF в более низкую pdf-версию. Чем все работает, как и ожидалось.
Я надеюсь, что простой трюк поможет вам!
Ответ 6
Для тех, у кого нет каких-либо pro-версий Acrobat:
У меня возникла проблема с новыми версиями Word при попытке использовать функциональность Office для сохранения в PDF. Кажется, что инструмент преобразования PDF, поставляемый в Office, использует более новые форматы. Вот как я его исправил.
- Установите бесплатную версию NitroPDF (можно работать с другим бесплатным создателем PDF, который можно загрузить)
- Перейдите в документ Word и выберите "Печать".
- В параметрах печати вместо вашего принтера выберите "Nitro PDF Creator (Reader 3)" или любую другую текущую версию.
- Откроется диалоговое окно и позволит вам выбрать, где сохранить файл PDF.
Сохраненная версия была открыта FPDF.
Надеюсь, что это поможет
Ответ 7
У меня была та же проблема, что 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