Rails PDFKit - 使用 to_file 时 Errno::ENOENT(没有这样的文件或目录)

Rails PDFKit - Errno::ENOENT (No such file or directory) when using to_file

每当我尝试使用 to_file 生成 pdf 时,进程就会挂起,当我停止开发服务器时,我得到 Errno::ENOENT(没有这样的文件或目录 - path/to/pdf).但是,我可以使用 to_pdf 内联渲染 pdf。我还可以在我尝试使用 to_file.

生成它们的同一文件夹中从命令行生成 PDF

我正在使用 Rails 3.2.12 和 pdfkit 0.8.2。我试过使用 wkhtmltopdf 版本 0.9.6 到 0.12.4。我在 Ubuntu 14.04.

来自控制器的示例:

html = render_to_string(:action => "show.html.erb", :formats => :html)
kit.stylesheets << "{Rails.root}/app/assets/stylesheets/stylesheet1.css"
kit.stylesheets << "#{Rails.root}/vendor/assets/stylesheets/stylesheet2.css"
kit.to_file("#{Rails.root}/folder_to_write_to/generated_pdf.pdf")

原来问题是资产管道与 wkhtmltopdf 冲突。已添加config.threadsafe!到 development.rb,它开始工作了。

另一个问题可能是传递的默认选项。例如,当我保留默认 print_media_type 选项时,在日志中发现此消息:

The switch --print-media-type, is not support using unpatched qt, and will be ignored."

只有当我覆盖它时它才对我有用,无论是在初始化程序中还是像这样:
PDFKit.new(html, {print_media_type: false})

消息说它将被忽略,但事实并非如此。它导致文件无法生成。