1

在我的工作管理应用程序中,我想为客户准备一张 A4 页收据。

因此,我需要以某种方式将Job模型的详细信息打印到单个 A4 PDF 页面。

Rails 中是否有任何内置工具用于此目的?

如果没有,最好的方法是什么?

4

2 回答 2

1

有一种叫做prawn的 gem可以帮助生成 PDF。这是一个使用它来获得一些想法的教程:

http://railstips.org/blog/archives/2008/10/13/how-to-generate-pdfs-in-rails-with-prawn/

于 2011-03-02T04:18:36.640 回答
1

基本上有两个选项:(任何 PDF 创建都需要 gem - 没有为 rails 创建默认 PDF)

  1. 使用Prawn创建纯 PDF ,您必须使用 Prawn API 进行所有格式化

  2. 创建收据的 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 )

于 2011-03-02T06:03:19.633 回答