如何使用 FPDF/FPDI 获得精确修改的 PDF?

Posted

技术标签:

【中文标题】如何使用 FPDF/FPDI 获得精确修改的 PDF?【英文标题】:How to get the exact modified PDF using FPDF/FPDI? 【发布时间】:2011-07-12 11:39:48 【问题描述】:

我的任务是修改 PDF 并向其中添加图像,为此我使用了 FPDF 和 FPDI 库.. 其操作代码如下:

<?php
require_once('fpdf.php');
require_once('fpdi.php');

$pdf =& new FPDI();
$pdf->AddPage();

//Set the source PDF file
$pagecount = $pdf->setSourceFile("Completed.pdf");

//Import the first page of the file
$tpl = $pdf->importPage(1);


//Use this page as template
// use the imported page and place it at point 20,30 with a width of 170 mm
$pdf->useTemplate($tpl, 20, 30, 170);

#Print Hello World at the bottom of the page

//Select Arial italic 8
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(90, 160);
//$pdf->Rotate(90);
$pdf->Image('think.jpg',120,240,20,20);
$pdf->Image('think.jpg',120,260,20,20);
//$pdf->Write(0, "Hello World");

$pdf->Output("modified_pdf.pdf", "F");
?>

但是当我得到修改后的 pdf 时,我会得到非常扭曲的修改过的 pdf...其屏幕截图如下:

原始文件如下:

因此任何人都可以帮助我使用相同的代码/修改后的代码检索正确的修改后的 PDF..?

【问题讨论】:

@Gordan 你能帮帮我吗? @Pekka 你能帮帮我吗? 最近遇到了同样的问题,似乎是保存到文件时 fpdf 中的一个错误 - 下载相同的生成的 pdf 作品。我最终导出为 xls 而不是 pdf。 字体好像损坏了,你是不是比较二进制文件? @Maerlyn @p4553d 感谢关注,因为它是一个 BUG。但不幸的是,我需要获取 PDF... 【参考方案1】:

它的 fpdf_tpl.php 文件需要用新的下载更新

【讨论】:

【参考方案2】:

http://www.tcpdf.org/ 使用 TCPDF 很好...

【讨论】:

它会修改我现有的 PDF 并将图像写入所需的位置吗?

以上是关于如何使用 FPDF/FPDI 获得精确修改的 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让 FPDF/FPDI 或 Zend_Pdf 支持解析大于 1.4 的 PDF?

保留 PDF 表单域

使用 PHP 从模板创建新的 PDF

如何使用 jquery 获得精确的 div 标签匹配选择器?

如何使用 YouTube iframe 获得更精确的当前、视频和开始时间?

syncsort 将 pd 精确转换为 zdf