我正在使用Terrapin从Rails中的命令行执行wkhtmltopdf。
Terrapin::CommandLine.path = "/usr/bin/wkhtmltopdf"
pdfCommand = Terrapin::CommandLine.new("xvfb-run wkhtmltopdf :html_source :pdf_target")
tempHTML = Tempfile.new(["pattern", ".html"])
tempHTML << html
tempPDF = Tempfile.new(["pattern",".pdf"])
pdfCommand.run(html_source: tempHTML.path, pdf_target: tempPDF.path)
字符串
它运行,但返回:
QPainter::begin(): Returned false
Error: Unable to write to destination
Exit with code 1, due to unknown error.
型
我已经确定wkhtmltopdf拥有完全权限,我不确定Terrapin是否与此有关?
编辑:在控制台中运行xvfb-run wkhtmltopdf http://www.example.com test.pdf
可以正常工作。
1条答案
按热度按时间2jcobegt1#
为了让Terrapin处理插值,它们需要在
new
的第二个参数中。也就是说,它期望你正在运行的命令与其中包含插值的字符串分开:字符串
如果你在脚本中添加
Terrapin::CommandLine.logger = Logger.new(STDOUT)
,你会看到terrapin试图运行xvfb-run wkhtmltopdf :html_source :pdf_target
。