【问题标题】:Generating PDFs from HTML with variables in Ruby/Rails使用 Ruby/Rails 中的变量从 HTML 生成 PDF
【发布时间】:2011-09-29 19:39:18
【问题描述】:
我们正在重构我们的应用程序中的 PDF 生成器,并正在寻找替代我们现在使用的破解版的替代方案。经过一番研究,似乎 Prawn 或 PDFKit 是要走的路。
理想情况下,我们希望进行 HTML 到 PDF 的转换,但还包括一些通过 Ruby 填写的字段
<h1>#{user.name}</h1>
因此,当生成 PDF 时,将替换为用户名。关于使用什么/如何执行此操作的示例的任何建议?
谢谢。
【问题讨论】:
标签:
ruby-on-rails
ruby
pdf
pdf-generation
【解决方案1】:
看看wkhtmltopdf (GitHub) -- 它使用 webkit 进行渲染,所以你往往会得到相当好的结果。它有一些怪癖(例如,当字体使用连字呈现时,Adobe Reader 中会出现奇怪的字符),因此在决定将其用于生产之前,请先针对您的用例进行测试。
当然,您可以像使用任何网页一样使用您选择的模板语言生成 HTML。
【解决方案2】:
你看过 Prince 的 PDF 生成吗?我最近浏览了所有 Prawn 和 PDFKits 之类的东西,发现它们也太……古怪……好用。
Prince 直接获取 HTML 并输出 PDF。与 Rails 一起使用非常简单 - 您只需制作一个模板并通过 Rails 模板系统运行它,然后将其输出到文件(或直接到 Prince 的管道)而不是屏幕。
例如参见 Rails 中的render_to_string。您可以使用它将渲染数据保存到文件中并将其提供给 Prince(或您选择使用的任何其他 PDF 生成器)。
王子:
http://www.princexml.com/