2016-06-28 12 views
3

Ich möchte wkhtmltopdf verwenden, um beide Seiten, die ich kontrolliere (in dem Fall kann ich die window.status beim Rendern) und (gelegentlich) Seiten, die ich nicht kontrolliere . Laut this thread on the mailing list sollte ich in der Lage sein, --window-status auf einen Wert zu setzen, und --javascript-delay ebenso, und Rendering startet, sobald eine dieser Bedingungen erfüllt ist. Das ist nicht meine Erfahrung; der Befehl wkhtmltopdf --javascript-delay 10000 --window-status imdone http://www.google.com/ /tmp/google.pdf wartet ewig (Version 0.12.3, sowohl unter OSX als auch unter Linux). Wie kann ich das auf der Mailingliste beschriebene Verhalten erhalten?Kombination von --window-status und --javascript_delay in wkhtmltopdf

Antwort

4

Eine Problemumgehung besteht darin, das --run-script-Tag zu verwenden, um das window.status nach einiger Zeit manuell festzulegen - das funktioniert sowohl für die Version, die das Patched verwendet, als auch für das, das das ungepatchte QT verwendet. Beachten Sie jedoch, dass --run-script einen kleinen Fehler beim Ausschließen seines Parameters zu haben scheint. Daher ist die folgende Zeile wird Ihnen das Verhalten angefordert:

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

Beachten Sie, dass aufgrund der oben genannten Fehler, funktioniert es nicht, wenn man Räume in dem Argument --run-script setzt, daher die folgenden nicht

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