我试图学习如何使用PHP语言编辑一个PDF文件与FPDF和FPDI。我有这个sample PDF file,我想在这里插入一些值。如果我使用FPDF创建一个PDF文件,一切正常。但是,如果我尝试使用FPDI编辑现有的PDF文件,它会给我以下错误消息:This page isn’t working. Failed to load resource: the server responded with a status of 500 ( ). crbug/1173575, non-JS module files deprecated.
下面显示了两个用于编辑PDF文件的程序。第一个成功,第二个失败。
<?PHP
//This program works and create a new PDF file.
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
以下用于编辑现有PDF文件的程序失败:
<?PHP
require_once('fpdf.php');
//This second line of code fails.
require_once('../fpdf183/FPDI/FPDI-2.3.6/src/Fpdi.php'); //This path is correct. I have tested it out with a simple echo “hello world”; file.
//I assume I didn’t install fpdi correctly. I have tried replacing /Fpdi.php part with autoload.php as well.
$pdf = new FPDI();
$pdf->AddPage();
$pdf->setSourceFile('testfile.pdf');
$tplIdx = $this->pdf->importPage(1); // import page 1
$this->pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
$this->pdf->SetFont('Arial', '', '13');
$this->pdf->SetTextColor(0,0,0);
$this->pdf->SetXY(20, 20); //set position in pdf document
$this->pdf->Write(0, 'Some texts will go in here');
$this->pdf->Output('newfile.pdf', 'D');//force the browser to download the output
?>
首先,我从fpdf.org下载FPDF .zip文件,并在我的托管文件服务器中解压缩。然后我从setasign.com网站下载FPDI并将此.zip文件上传到我的hostinger在线Web服务器。然后我把它提取到同一个fpdf文件夹中。(我的服务器上启用了zlib扩展)。
1条答案
按热度按时间yptwkmov1#
A. FPDI下载
从https://github.com/Setasign/FPDI下载fpdi后,请使用以下命令启动fpdi:
下面是一个完整的工作示例,我在过去使用过供您参考(我使用过TCPDF,但我已经改为使用fpdf):
**B.测试PHP:testgen.php
为了方便您进一步测试,您可以从以下链接下载fpdf / fpdi文件:
之后,解压并上传文件到您的web服务器PHP文件夹,然后使用浏览器运行testgen.php查看效果。(php将在原始
ok.pdf
文件的每一页上添加文本Appendix 1(new)
,然后下载文件)C.处理加密PDF的问题
最后但并非最不重要的是,请注意FPDI不支持导入加密的PDF文档请参阅以下链接:
https://www.setasign.com/support/faq/fpdi/can-fpdi-import-encrypted-pdf-documents/
根据我的经验,要处理加密的PDF,您可以使用类似pdf 995的东西来“打印”加密的PDF,以便生成正常的PDF,然后后者的PDF可以由FPDI处理。