我有一个rails应用程序正在加入任何计数的pdf文件。现在我需要使用ruby为加入的pdf添加编号。
是否有使用ruby为现有pdf文件添加文本或其他内容的最先进方法?
答案 0 :(得分:1)
这个解决方案对我有用......
Prawn::Document.generate("output.pdf", :template => "/path/to/template.pdf") do
text "This is a text in a copied pdf.", :align => :center
end
答案 1 :(得分:1)
您可以使用CombinePDF。
我写这篇文章是因为Prawn放弃了他们的模板支持,我需要一个原生的替代品。
您的代码可能如下所示:
pdf = CombinePDF.new
pdf << CombinePDF.new("file1.pdf")
pdf << CombinePDF.new("file2.pdf")
pdf.number_pages
pdf.save "output.pdf"
查看不同格式选项的文档 - 我喜欢用圆框包围编号(它在功能中,应该很容易玩)。
答案 2 :(得分:1)
在Ruby / Rails中使用PDF确实是一个挑战(所以我发现了!)
这是我能够在Rails中动态添加文本到PDF的方式。
将此宝石添加到您的宝石文件gem "combine_pdf"
然后您可以使用如下代码:
# get the record from the database to add dynamically to the pdf
user = User.last
# get the existing pdf
pdf = CombinePDF.load "#{Rails.root}/public/pdf/existing_pdf.pdf"
# create a textbox and add it to the existing pdf on page 2
pdf.pages[1].textbox "#{user.first_name} #{user.last_name}", height: 20, width: 70, y: 596, x: 72
# output the new pdf which now contains your dynamic data
pdf.save "#{Rails.root}/public/pdf/output#{Time.now.to_s}.pdf"
您可以在此处找到有关文本框方法的详细信息: https://www.rubydoc.info/gems/combine_pdf/0.2.5/CombinePDF/Page_Methods#textbox-instance_method
我花了几天时间研究了许多不同的宝石:
prawn
wicked_pdf
pdfkit
fillable_pdf
但这是截至2019年对我而言最平滑的解决方案。
我希望这可以节省一些人的时间,这样他们就不必经历我对PDF的所有反复试验!