邪恶的pdf没有渲染页眉/页脚

时间:2017-01-11 04:04:57

标签: html ruby-on-rails-3 pdf-generation wkhtmltopdf wicked-pdf

我正在使用wicked_pdf在我的rails项目中从pdf生成html。它正在渲染template但我无法打印header/footer部分。以下是我的代码,仅打印template部分

render pdf: "pdf_name",
               layout: 'application',
               template: 'reports/show',
               formats: [:html],
               margin: { top: 10, bottom: 10, left: 10, right: 10 },
               disable_javascript: true,
               show_as_html: params[:debug],
               header: {
                 html: { template: 'shared/header' },
                 spacing: 10
               },
               footer: {
                 html: { template: 'shared/footer' },
                 spacing: 30,
                 line: true
               }

如果我尝试使用WickedPdf.new.pdf_from_string render_to_string,则会显示Failed to load PDF document错误,即使简单WickedPdf.new.pdf_from_string('<html><body><h1>Hello There!</h1></body></html>')无效也是如此。

我曾尝试使用render_to_string_with_wicked_pdf, render_with_wicked_pdf,但没有成功。我的Rails版本为3.2.19wicked_pdf gem版本为1.1.0wkhtmltopdf版本为wkhtmltopdf-0.13.0-alpha-7b36694_linux-trusty-amd64.deb。我还尝试使用wkhtmltopdf版本0.12.0

我的问题是

  1. 为什么我的上述实现不起作用?
  2. 为什么pdf_from_string不起作用?
  3. 感谢任何形式的帮助。感谢。

1 个答案:

答案 0 :(得分:6)

使用由修补后的qt构建的wkhtmltopdf版本,该版本适用于页脚和标题。

$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ tar xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ sudo mv wkhtmltox /usr/local/share/
$ sudo update-alternatives --install /usr/local/bin/wkhtmltopdf wkhtmltopdf /usr/local/share/wkhtmltox/bin/wkhtmltopdf 1005

检查版本:

$ wkhtmltopdf --version

它应该说:

wkhtmltopdf 0.12.4 (with patched qt)

测试它:

$ wkhtmltopdf --footer-center 'footer' http://www.google.com google.pdf

你也可以安装wkhtmltoimage:

$ sudo update-alternatives --install /usr/local/bin/wkhtmltoimage wkhtmltoimage /usr/local/share/wkhtmltox/bin/wkhtmltoimage 1005

你可以使用这样的脚本:wkhtmltox installer