在我的工作管理应用程序中,我想为客户准备一张 A4 页收据。
因此,我需要以某种方式将Job
模型的详细信息打印到单个 A4 PDF 页面。
Rails 中是否有任何内置工具用于此目的?
如果没有,最好的方法是什么?
在我的工作管理应用程序中,我想为客户准备一张 A4 页收据。
因此,我需要以某种方式将Job
模型的详细信息打印到单个 A4 PDF 页面。
Rails 中是否有任何内置工具用于此目的?
如果没有,最好的方法是什么?
有一种叫做prawn的 gem可以帮助生成 PDF。这是一个使用它来获得一些想法的教程:
http://railstips.org/blog/archives/2008/10/13/how-to-generate-pdfs-in-rails-with-prawn/
基本上有两个选项:(任何 PDF 创建都需要 gem - 没有为 rails 创建默认 PDF)。
使用Prawn创建纯 PDF ,您必须使用 Prawn API 进行所有格式化
创建收据的 HTML 版本并将其转换为 PDF,执行此操作的更好的宝石之一是PDFkit。它使用 web-kit 驱动的浏览器引擎。
它们都很好用,对于单页文档,我通常使用 PDFkit 来转换 HTML,对于需要大量页面的较大文档,我使用 Prawn,因为它可以让您的文件更小,并且可以更好地处理多个页面。
我的建议是制作 HTML 收据并将其显示在屏幕上,并为用户提供使用PDFkit保存 PDF 版本的选项。
编辑:windows安装。(未经测试 - windows 和我已经分道扬镳了。)
下载 wkhtmltopdf 的 windows 安装程序:win-wkhtmltopdf
现在创建一个初始化文件,例如 config/initializers/pdfkit_config.rb
在 pdfkit_config.rb 中设置本地机器上 wkhtmltopdf 的绝对路径:
PDFKit.configure do |config|
if RAILS_ENV == 'development'
config.wkhtmltopdf = 'D:\path\to\your\wkhtmltopdf' #this bit i'm not sure about
else
config.wkhtmltopdf = "#{RAILS_ROOT}/lib/wkhtmltopdf"
end
end
对于您的生产环境,您实际上可以在您的 repo 中拥有 wkhtmltopdf 的副本,当然是 unix 版本。(记得在 git add 之前 chmod +x )