5 votes

Combinaison de --window-status et --javascript_delay dans wkhtmltopdf

Je veux utiliser wkhtmltopdf pour rendre les deux pages que je contrôle (dans ce cas, je peux définir l'attribut window.status lorsqu'ils sont rendus) et (occasionnellement) des pages que je ne contrôle pas. D'après ce fil de discussion sur la liste de diffusion Je devrais être capable de mettre --window-status à une certaine valeur, et --javascript-delay et le rendu commence dès que l'une de ces conditions est remplie. Ce n'est pas mon expérience ; la commande wkhtmltopdf --javascript-delay 10000 --window-status imdone http://www.google.com/ /tmp/google.pdf attend indéfiniment (version 0.12.3, à la fois sur OSX et linux). Comment puis-je obtenir le comportement décrit sur la mailinglist ?

6voto

Claude Points 1183

Une solution de contournement consiste à utiliser l'option --run-script pour définir la balise window.status après un certain temps manuellement -- cela fonctionne à la fois sur la version qui utilise le correctif et celle qui utilise le QT non corrigé. Notez cependant que --run-script semble avoir un petit bug dans l'échappement de son paramètre. Par conséquent, la ligne suivante vous donnera le comportement demandé :

wkhtmltopdf --window-status imdone --run-script \
'window.setTimeout(function(){window.status="imdone";},1000);' \
http://google.com/ /tmp/google.pdf

Notez qu'en raison du bogue susmentionné, cela ne fonctionne pas si l'on met des espaces dans le champ --run-script et, par conséquent, l'opération suivante ne fonctionnera pas

wkhtmltopdf --window-status imdone --run-script \
'window.setTimeout(function (){window.status = "imdone";}, 1000);' \
http://google.com/ /tmp/google.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X