我已经成功地将 PDFKit 实现到我的 Rails 应用程序中。但我的应用程序主要是客户端。我有很多 javascript 小部件,它们全部加载大约需要 3 秒。当我生成 pdf 时,我可以看到一些小部件已经加载,一些正在加载中,而另一些则根本没有加载。
有没有办法解决这个问题?它不必太花哨。如果我可以将 PDF 生成延迟 5 秒钟,直到页面完成加载,那很好。
我已经成功地将 PDFKit 实现到我的 Rails 应用程序中。但我的应用程序主要是客户端。我有很多 javascript 小部件,它们全部加载大约需要 3 秒。当我生成 pdf 时,我可以看到一些小部件已经加载,一些正在加载中,而另一些则根本没有加载。
有没有办法解决这个问题?它不必太花哨。如果我可以将 PDF 生成延迟 5 秒钟,直到页面完成加载,那很好。
PDFKit 使用 wkhtmltopdf 根据页面的 webkit 渲染生成 pdf。有一个 --javascript-delay 参数看起来可以用来延迟客户端的生成以完成。
在 pdfkit.rb 中试试这个
config.default_options = {
:javascript_delay => 5000
}
您可以告诉 pdfkit 等到window.status
JS 变量获得特定值。
PDFKit.new(
...,
window_status: 'ready',
...
)
因此,在您的 javascript 中,您可以为 PDFKit 标记是时候通过执行以下操作来生成 PDF:
window.status = 'ready'
就这么简单:D
不要等待超过需要的时间。在希望之前不要冒险生成 PDF。