我有几个PDF模板文件与复杂的内容和几个空白的区域/区域在他们。我需要能够在这些空白区域中写入文本,并将结果PDF保存在文件夹中。
我在谷歌上搜索了这个问题的答案,但没有找到确切的答案。更好的解决方案之一是PDF::工具包,但是它需要购买Acrobat来向现有的PDF文档添加可替换的属性。
PHP中有FPDI,它可以用来简单地打开一个PDF文件,并在现有内容的基础上编写/绘图。有一个这个库的Ruby端口,但最后一次提交是在2009年初。而且,该项目似乎没有得到广泛的使用和支持。
的问题是:有什么更好的方法来编辑、编写或绘制现有的PDF呢?
这个问题在这里似乎也没有得到回答。这些问题是相关的,但并不完全相同:
发布于 2012-02-09 05:47:37
您一定要查看对虾 gem,通过它您可以生成任何定制的pdf文件。实际上,通过将现有PDF作为新对虾文档的模板,您可以使用对虾将文本写入现有的pdfs。
例如:
filename = "#{Prawn::DATADIR}/pdfs/multipage_template.pdf"
Prawn::Document.generate("full_template.pdf", :template => filename) do
text "THis content is written on the first page of the template", :align => :center
end
这将把文字写到旧的pdf的第一页。
请参阅这里的更多内容:http://prawn.majesticseacreature.com/manual.pdf
发布于 2015-05-18 23:39:26
由于对虾删除了模板特性(它充满了bug),我发现最简单的方法是:
粗略的例子:
require 'prawn'
require 'pdf/toolkit'
template_filename = 'some/dir/Awesome-Graphics.pdf'
prawn_filename = 'temp.pdf'
output_filename = 'output.pdf'
Prawn::Document.generate(prawn_filename) do
# Generate whatever you want here.
text_box "This is some new text!", :at => [100, 300]
end
PDF::Toolkit.pdftk(prawn_filename, "background", template_filename, "output", output_filename)
发布于 2015-06-01 09:58:01
我建议使用对虾生成PDF,然后使用pdf格式将两个生成的PDF合并为一个。我就这样用,效果很好。
关于如何组合两个PDF的简短示例(来自自述):
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf = CombinePDF.load "content_file.pdf"
pdf.pages.each { |page| page << company_logo } # notice the << operator is on a page and not a PDF object.
pdf.save "content_with_logo.pdf"
https://stackoverflow.com/questions/9185942
复制相似问题