pdf (wkhtmltopdf) small images and bugs in production environment

For some reason my Rails app that uses wicked_pdf gem to generates PDF files (a gem that uses the software wkhtmltopdf) is generating different PDF in development and production.

This is how it outputs in development, is almost fine: Click here to view.
This is how outputs in production, with a lot of errors: Click here to view.

The real difference in the system is that in development I use the wkhtmltopdf 0.9.9 in OSX. In production I use wkhtmltopdf 0.9.9 in Ubuntu. Once the Ubuntu Server 14.04 don't use X Server (and the wkhtmltopdf need it) I installed the Xorg and make the follow wrapper:

/usr/bin/wkhtmltopdf.sh

xvfb-run -a -s "-screen 0 1024x768x32" wkhtmltopdf "$@"

And the follow code in Rails initializers:

/config/initializers/wicked_pdf.rb

if Rails.env.production?
  WickedPdf.config = {
    :exe_path => '/usr/bin/wkhtmltopdf.sh'
  }
else
  WickedPdf.config = {
    :exe_path => '/usr/local/bin/wkhtmltopdf'
  }
end

And that's the controller code that I render the PDF:

render :pdf => "curriculum",
        :template => 'kurrics/kurrics.pdf.erb',
        :margin => { :top => 4, :bottom => 4, :left => 0, :right => 0 },
        :encoding => "utf8",
        :print_media_type => true

And if its needed, the PDF template layout:
https://gist.github.com/fschuindt/e173c05d0cc7378df105

I am pretty lost, any tip?


Your problem might have already been solved. But this answer will helpful for other.

As your pdf samples, the problems are with external css and background image. I had the same problem and, I added internal css line as below in pdf template. (Please see this issue)

background-image: url('file://<%= Rails.root.join('app/assets/images/colorful-triangles.jpg') %>');

This method works in both development and production environments.

It is a best practice to use separate css files for pdf. This will speedup your pdf generation and it reduces the server cost. And, avoid loading unwanted css files and images to pdf layout.

链接地址: http://www.djcxy.com/p/63956.html

上一篇: PDF封面页停止PDF生成的其余部分

下一篇: pdf(wkhtmltopdf)生产环境中的小图像和错误