最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Rails PDFKit wait for client side - Stack Overflow

programmeradmin5浏览0评论

I have successfully implemented PDFKit into my Rails application. But my application is mostly client side. I have lots of javascript widgets and it takes around 3 seconds for all of them to load. When I generate the pdf I can see some of the widgets have loaded, some are in the process of loading, and others have not loaded at all.

Is there some way to work around this? It doesn't have to be too fancy. If I can delay the PDF generation for 5 seconds, until the page has pleted loaded, that's fine.

I have successfully implemented PDFKit into my Rails application. But my application is mostly client side. I have lots of javascript widgets and it takes around 3 seconds for all of them to load. When I generate the pdf I can see some of the widgets have loaded, some are in the process of loading, and others have not loaded at all.

Is there some way to work around this? It doesn't have to be too fancy. If I can delay the PDF generation for 5 seconds, until the page has pleted loaded, that's fine.

Share Improve this question asked Sep 29, 2013 at 11:26 Remington GatesRemington Gates 731 silver badge4 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 8

PDFKit uses wkhtmltopdf to generate the pdfs based on a webkit render of the page. There is a --javascript-delay params that looks like it could be used to delay the generation for the client side to finish.

Try this in pdfkit.rb

config.default_options = {
  :javascript_delay => 5000
} 

You can tell pdfkit to wait until window.status JS variable gets a specific value.

PDFKit.new(
  ...,
  window_status: 'ready',
  ...
)

Thus within your javascript you can flag for PDFKit it's time to generate PDF by doing:

window.status = 'ready'

Simple as this :D

Not waiting more than needed. Not risking generating PDF before wished.

发布评论

评论列表(0)

  1. 暂无评论