Когда я пытаюсь загрузить PDF-файл и разделяя каждую страницу как pdf, некоторые файлы в формате pdf работают, но некоторые из файлов PDF показывают эту ошибку:
mPDF error: Unable to find xref table -" Maybe a Problem with auto_detect_line_endings"
Мой код:
ini_set('memory_limit', '512M'); $pagecount = Model::count_pages($documentPath.$journalDoc); for ($i=1; $i<=$pagecount; $i++) { $pdf = new mPDF('','Letter',12,'helvetica, sans-serif',200,0,0,20,0,10,'P'); $pdf->SetImportUse(); $pdf->SetSourceFile($documentPath.$journalDoc); $import_page = $pdf->ImportPage($i); $pdf->UseTemplate($import_page); $pdf->Output($output_dir.$i.'.pdf', 'F'); }
Это может быть вызвано файлами PDF версии, несовместимой с запущенным mPDF. Вы часто можете обойти проблему, регрессируя исходные файлы PDF.
Например, для mPDF v6.0 попробуйте объединить ваши PDF-файлы до максимально v1.4, используя что-то вроде Ghostscript. (Где old.pdf – это исходный файл)
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o new.pdf old.pdf
Ghostscript не будет записывать в файл, который он читает, поэтому, если вы делаете это, вы должны будете танцевать;
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o new.pdf old.pdf; mv -f new.pdf old.pdf
Версия FPDI в официальном репо mPDF очень стар. Вы можете попробовать обновиться до последней версии . Или вы просто используете официальную версию FPDI, которая использует FPDF .
Если вы получите сообщение о «несвязанной компрессии», вы можете проверить дополнение FPDI PDF-Parser . Обратите внимание, что существует несовместимость лицензии с mPDF.
Это может быть вызвано версией файла PDF, которая несовместима с mPDF. Лучше регрессировать версию файла PDF.
Если вы извлекли страницу из файла, возможно, вы использовали программное обеспечение Adobe. Для решения этой проблемы просто используйте pdftk или pdfchain на платформе Linux.