如何在Wkhtmltopdf/wkhtmltoimage上运行自定义Javascript?

aDo*_*DoN 6 javascript jquery wkhtmltopdf wkhtmltoimage

我想在网站上运行一个javascript,但是当我这样做时,什么都没有改变,我得到了pdf,好像我没有运行javascript的结果,这是我做的一个例子:

xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage --run-script "javascript:(\$(function(){ \$("div").hide()   ;}))" google.com google.png
Run Code Online (Sandbox Code Playgroud)

我还有没有jquery的脚本:

xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf --run-script "javascript:(function(){ document.write("AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"); ;})" google.com p2.pdf
Run Code Online (Sandbox Code Playgroud)

但正如我所说,对pdf或png没有影响(因为我已尝试过wkhtmltoimage和wkhtmltopdf).

jgi*_*ich 9

您的命令错误地使用引号; 试试这个:

--run-script "javascript:(\$(function(){ \$('div').hide()   ;}))"
Run Code Online (Sandbox Code Playgroud)

另外,请尝试增加JavaScript延迟:

--javascript-delay 1000
Run Code Online (Sandbox Code Playgroud)

http://wkhtmltopdf.org/usage/wkhtmltopdf.txt


小智 5

关于问题

“你知道有什么方法可以生成更小的 .png 吗?因为我生成的每个 png 权重为 9MB”

我在使用 wkhtmltoimage 生成的大型 PNG 文件时遇到了同样的问题,并设法通过添加标志来解决此问题,将--quality 0图像从 3.5MB 缩小到仅 38KB。请注意,PNG 正在进行无损压缩,因此图像质量不会改变,只会缩小尺寸。--quality当您输出为 jpg 格式时使用标志时要小心,因为如果您将其设置得太低,这会使图像模糊。