0

我安装了 PDFKit 和 wkhtmltopdf。

在一个动作中,我呈现了一个简单的 html,例如:

<html><body><h1>Hello Internet!</h1></body></html>

当我使用 .pdf 扩展名运行我的操作时,它会生成错误的 pdf 文件。调试 PDFKit 我得到了这些行:

result = IO.popen(invoke, "w+") do |pdf|
  pdf.puts(@source.to_s) if @source.html?
  pdf.close_write
  pdf.gets(nil)
end

好吧,这是生成我的 PDF 的地方,它使用命令行 no wkhtmltopdf 和我的 html 作为输入。

使用 rdebug 我发现调用的值是:

"c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe" "--margin-right" "0.75in" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-bottom" "0.75in" "--encoding" "UTF-8" "--margin-left" "0.75in" "--quiet" "-" "-"

而@source.to_s 是

<html><body><h1>Hello Internet!</h1></body></html>

好的,所以我尝试像这样手动运行命令:

"c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe" "--margin-right" "0.75in" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-bottom" "0.75in" "--encoding" "UTF-8" "--margin-left" "0.75in" "--quiet" "-" "-" < c:\hello_internet.html > correct.pdf

显然在 hello_internet 中有 @source.to_s 的内容

运行它会生成正确的 pdf。

生成的正确 pdf 在这里,错误在这里

我不知道这里有什么问题。

谢谢。

4

1 回答 1

0

该解决方案非常简单,并且是PDFKits Github 上 bxu689的拉取请求的对象。

于 2011-03-29T21:55:59.193 回答