wkhtmltopdf 在打印前等待条件

Posted

技术标签:

【中文标题】wkhtmltopdf 在打印前等待条件【英文标题】:wkhtmltopdf wait for condition before printing 【发布时间】:2014-07-02 05:18:06 【问题描述】:

我们正在使用 wkhtmltopdf 将动态 html 页面转换为 pdf。 我们需要等到所有的ajax请求都完成。

是否有可能通过条件延迟打印?

【问题讨论】:

我猜没有这个选项,因为当你考虑太多时它会崩溃。想象一个页面每 N 秒连续轮询一个 AJAX 端点,这实际上很常见。您的场景可能没有这个,但 wkhtmltopdf 不知道,并且没有真正的方法来标记您有一个固定的加载路径。 我不想让 wkhtmltopdf 等待我的 ajax 请求,我需要一个选项来添加我的等待条件,也许是一个可以告诉 wkhtmltopdf 何时打印的脚本。 【参考方案1】:

您可以使用--window-status 选项,请参阅此post on the mailing list。

【讨论】:

【参考方案2】:

如果您可以更改网页的 javascript 代码,那么当您确定一切都已加载完毕时,将此代码行添加到您的 javascript:

if (your_condition_is_met_here)
    window.status = 'ready_to_print';

然后将标志 --window-status ready_to_print 传递给 wkhtmltopdf。例如:

wkhtmltopdf --window-status ready_to_print map.html map.pdf

见:wkhtmltopdf javascript delay for output of google maps

【讨论】:

【参考方案3】:

您可以尝试使用 --javascript-delay 选项。

【讨论】:

我想确保每个请求都已完成,并且我不想延迟超过需要的时间。所以 --jvascript-delay 不好。

以上是关于wkhtmltopdf 在打印前等待条件的主要内容,如果未能解决你的问题,请参考以下文章

wkhtmltopdf 中文参数详解

wkhtmltopdf错误解决办法

Linux内核的基础设施:工作队列等待队列

C++11多线程编程-两个进程轮流打印1~100

(王道408考研操作系统)第二章进程管理-第四节2:死锁处理策略之预防死锁

Date() 按条件打印当前日期的月份和周