FPDF 错误:本文档(testcopy.pdf)可能使用了 FPDI 附带的免费解析器不支持的压缩技术

2022-08-30 14:24:22

我正在运行以下代码并给我这个错误:我使用了另一个名为的pdf,并且工作正常,但它给我带来了错误FPDF error: This document (testcopy.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI.test.pdftestcopy.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。此脚本有助于动态更改 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

我遇到了同样的问题,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

推荐