5

我正在尝试使用 PDFKit。

它看起来相当简单,所以我试图跟随Ryan 的 Rails cast

所以我将 gem 添加到我的 GemFile 并更新了我application.rb的:

config.middleware.use "PDFKit::Middleware"

之后,我在 linux 上安装了 wkhtmltopdf:

apt-get install wkhtmltopdf

我确保它有效:

[nicolas@Minto]%wkhtmltopdf www.google.com gogole.pdf
Loading page (1/2)
Printing pages (2/2)                                               
Done

一切看起来都很好,直到我尝试在我的一个页面上添加 .pdf ......

该网站永远处于加载状态。当我Ctrl - C在控制台中使用 a 停止服务器时,出现以下错误:

RuntimeError (command failed: "/usr/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"):
  pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:71:in `to_pdf'
  pdfkit (0.5.2) lib/pdfkit/middleware.rb:21:in `call'

我究竟做错了什么?

4

4 回答 4

0

我也跟着Ryan 的 Rails 演员

PDFkit 依赖于 wkhtmltopdf.rb。任何 > 0.9.9 的版本都会导致 PDF 创建过程在完成之前挂起,需要 Ctrl - C。我使用的是 OS X 10.6.8,而不是 Linux。但是尝试:

wkhtmltopdf --version

如果 > 0.9.9,则回滚到 0.9.9。解决了我的问题。我花了几个小时才弄清楚。

于 2012-08-07T19:37:06.217 回答
0

我们在这里有一个相关的问题:PDF Generation hangs using PDFKit and wkhtmotopdf

引用Beerlington的解决方案:

尝试从您的 HTML 中删除任何 javascript 包含标签,看看是否至少可以让 PDF 呈现。如果这行得通,那么你至少有一个起点。

我试过了,这对我有用。

我认为这与 javascript 和具有相对路径的样式表等资产有关。

于 2012-10-25T21:03:02.780 回答
0

好吧,

花了几个小时的谷歌搜索,但我终于在另一个 stackoverflow 问题中找到了解决方案: pdfkit not rendering correct in rails 3.1

感谢您的帮助。

于 2012-03-18T21:15:28.920 回答
0

我最近玩过 PDFKit 并让它在我的 rails 应用程序中工作并遇到了类似的问题。
您需要的三个步骤是:

  1. 您需要将gem "pdfkit"放入您的 GemFile。
  2. config.middleware.use PDFKit::Middleware放入您已有的application.rb文件中。
  3. 尝试将以下代码放入'config/initializers'文件夹下的pdfkit.rb文件中。

    PDFKit.configure 做 |config|

    config.wkhtmltopdf = 'C:\software\utilities\wkhtmltopdf\wkhtmltopdf.exe' #你的wkhtmltppdf安装目录的路径

    config.root_url = "http://localhost" # 仅当您的外部主机名在服务器上不可用时使用。

    结尾

于 2012-03-18T15:36:14.390 回答