带有PDF输出的PHP PDF模板库?
是否有任何PHP PDF库可以替换现有PDF、ODT或DOCX文档中的占位符变量,并生成PDF文件作为最终结果,而不会破坏布局 要求:带有PDF输出的PHP PDF模板库?,php,pdf,odt,Php,Pdf,Odt,是否有任何PHP PDF库可以替换现有PDF、ODT或DOCX文档中的占位符变量,并生成PDF文件作为最终结果,而不会破坏布局 要求: 不需要第三方web服务 能够在共享web主机上运行将是理想的(无需二进制安装/软件包) 请注意,对于我的用例来说,能够加载现有PDF文件并以编程方式在特定位置插入文本的库是不够的 据我的研究显示,没有图书馆可以做到这一点: TCPDF只能从头开始生成文档 FPDI可以读取现有的PDF模板,但只能以编程方式添加内容(无模板变量替换) 有各种各样的DOCX/O
- 不需要第三方web服务
- 能够在共享web主机上运行将是理想的(无需二进制安装/软件包)
- TCPDF只能从头开始生成文档
- FPDI可以读取现有的PDF模板,但只能以编程方式添加内容(无模板变量替换)
- 有各种各样的DOCX/ODT模板库,但它们不输出PDF
pdftk
可以使用,例如,现在就试用一下。)
更新:*Argh!*我被叫出办公室,同时赏金也过期了。开始一个新的悬赏:据我的测试显示,还没有一个解决方案能完全适合我
更新II:我将很快寻找pdftk方法,但我也将开始另一轮悬赏,以获得更多的投入。这个问题现在已经获得了1300个代表点的奖金,一定是某种记录:)
佩卡
我在前面研究过这个问题,我认为您可以使用(一个命令行实用程序)使用FDF/XFDF数据文件填写PDF表单,您可以在PHP中轻松生成这些文件。这是迄今为止我见过的最好的选择,尽管可能有一个本地库
pdftk通常非常有用,值得一看
更新:看看这里:这不是很实用,但为了完整性:如果您已经有一个ODT模板,那么您很可能会将其保留为模板。修改OpenDocument content.xml并替换其中的占位符非常简单。如果是这样,您可以使用或将ODT转换为最终PDF
unoconv -f pdf -o final.pdf template.odt
很明显,这需要在Web服务器上进行完整的OpenOffice设置(UNO和Writer)。显然,并不是每个网络主持人都会这么做!哈哈。即使在任何Debian或Fedora设置上都很简单。执行速度可能也不会很快。但这可能是最干净的方法,因为OOo比任何PHP类都能更好地管理这两种格式。您考虑过使用类似XSL:Formatting Objects(XSL:FO)的东西吗?基本上,它们是经过处理并转换为PDF的XML文档。在其中进行字符串或更好的DOM替换应该非常简单。它支持嵌入图像、链接、注释等 它不是PHP,但是有很多PHP包装,以及通过exec使用它的方法,等等。这不是一个理想的方法,但是它完全照顾到了模板部分。有关更多信息:
有一个实现,作为一个Apache项目-
虽然不是你所要求的,但是你可以考虑用两个步骤来实现:使用一些PHP模板系统(,)来生成HTML页面,然后使用像把它转换成PDF的工具。我正在使用它,结果很好(页面布局等没有问题)
当然,这取决于您的输入文档(您可以使用html而不是PDF/ODT作为源文件)以及这些文档布局的复杂性。fpdf并且它上面还有另一个扩展,我不记得了,它允许您导入模板。您最好的选择是动态生成整个文档,使用fpdf或类似的程序定义模板。这样,您的文本就不会被段落或类似的内容截断,您可以根据需要轻松地定位图像/其他元素。好的,我正在尝试帮助您解决一点问题 首先回答你的两个问题 我是否忽略了什么 没有。有一个PHP PDF库可以替换现有PDF中的占位符变量,并生成一个PDF文件作为最终结果,而不会破坏布局 问:有没有一种方法可以使用PDF表单来实现这一点 A-是的。要做到这一点,最基本的方法是使用PDF表单 对于这两个答案,您可以使用Justin Koivisto填充pdf表单字段php库。 有关更多详细信息,请访问。 请查看此处以获取更多信息 贾斯汀·科维斯托的工作值得称赞 附言 用于从pdf表单显示类似表格的输出的解决方法
请考虑对 < P>进行一些阅读,因为FDF PHP扩展已经失效,我将添加这个新的答案。< /P> 我刚刚执行了一个perl脚本,然后执行了pdftk命令 我很清楚它远不是一个真正的PHP解决方案,但它是可靠的,并且在任何*nix平台上都很容易实现
这里描述的工具也可以在Debian上使用,以防万一。后来,您可以使用开源模板设计器,在任何现有PDF上定义pkaceholders/area,然后以PHP(JSON格式)加载它,并使用fpdf lib在原始PDF上相应地编写,生成带有动态数据的自定义PDF。这是一个