Rails PDFKit 等待客户端

Rails PDFKit wait for client side

本文关键字:客户端 等待 PDFKit Rails      更新时间:2023-09-26

我已经成功地将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 的风险。