在 PHP 中编写/绘制 PDF 模板文档
Posted
技术标签:
【中文标题】在 PHP 中编写/绘制 PDF 模板文档【英文标题】:Writing/Drawing over a PDF template document in PHP 【发布时间】:2011-05-17 00:08:34 【问题描述】:我希望能够使用 php 在现有 pdf 文档上写入/覆盖文本。我希望做的是有一个可以充当模板的 pdf 文档,并通过打开模板文档、覆盖相关文本并将结果作为新文档提供来填补空白。模板文档是单页,因此不需要页面合并/操作。
有没有免费的库可以做到这一点?我应该去哪里看?我所做的大多数搜索似乎都在处理合并文档/添加页面,而不是在现有页面上覆盖内容。
谢谢。
*编辑: 这是我所做的: 1. 下载 FPDF 2.从
下载FPDI + FPDF_TPLhttp://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/
这里是一些未来流浪者的示例代码(改编自 www.setasign.de 上的示例):
<?php
include('fpdf.php');
include('fpdi.php');
// initiate FPDI
$pdf =& new FPDI();
// add a page
$pdf->AddPage();
// set the sourcefile
$pdf->setSourceFile('templatedoc.pdf');
// import page 1
$tplIdx = $pdf->importPage(1);
// use the imported page as the template
$pdf->useTemplate($tplIdx, 0, 0);
// now write some text above the imported page
$pdf->SetFont('Arial');
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(25, 25);
$pdf->Write(0, "This is just a simple text");
$pdf->Output('newpdf.pdf', 'D');
?>
【问题讨论】:
很高兴您在答案示例中进行了编辑,为此 +1,不是吗? :-) 是的!当几周后我忘记了我所做的事情并再次寻找它时,它也会对我有所帮助:P(我的项目还没有实现它,刚刚知道如何实现)。 您是否找到任何方法在现有文档中附加图像而不是编写文本? 【参考方案1】:查看FPDI Library 并添加到FPDF 以获取模板注释。
它还可以附加到另一个流行的 PHP PDF 库 TCPDF。现有的 PDF 被用作页面的基础,而不是空白,之后的过程与常规 PDF 创建相同。
【讨论】:
谢谢!很好,很容易通过代码覆盖文本。 如果你只是想填一个表格,请考虑moontear讨论的FDF路线,因为它比注释更可取。如果您需要进行更实质性的更改,那么 TCPDF 上的 FPDI 是必要的。【参考方案2】:您可能希望将 PDF 表单用于您想做的事情。要填充这些婴儿,您可以使用此处描述的 FDF 方法:Using html forms to fill in PDF fields with PHP and FDF。 实际上,这里还有一篇关于 PDF 表单填写的不错的 SO 帖子:Filling PDF Forms with PHP。
【讨论】:
+1 因为如果您不需要做表单无法满足的注释,FDF是表单修改的最佳方法。 +1 这是一种优雅的方法,但是我的简单文档只需要插入几个文本就可以保证一路走下去,所以对我来说,我认为建议的另一种方法更容易(而且更快)。还是谢谢!【参考方案3】:当您想使用 PDF lib 覆盖文档时,定位既费时又无聊。 Dhek 对此类任务很有用:https://github.com/cchantep/dhek/releases。
定义了 PDF 页面/坐标上的 JSON 映射,以便您可以使用自己喜欢的 PDF API 编写。
【讨论】:
以上是关于在 PHP 中编写/绘制 PDF 模板文档的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel Blade 模板中编写 PHP 代码?