我正在使用nReco HtmlToPdfConverter类来尝试将html文档转换为pdf。这样可以正常工作,但有一个例外。我有javascript,它是在document.ready上运行的,并且在html转换为pdf时不会呈现javascript,导致我的条形码(由我的javascript生成)没有在PDF中呈现。我正在寻找一种方法来延迟转换,直到文档准备好,还没有找到方法来做到这一点。目前我正在使用以下内容转换我的HTML文档:
var converter = new HtmlToPdfConverter {PageFooterHtml = "<div>Page: <span class='page'></span><div>", Margins = new PageMargins() {
Bottom = 10,
}, CustomWkHtmlArgs = "--print-media-type"
};
var pdfBytes = converter.GeneratePdfFromFile(url, null);
我的html页面上的javascript未在pdf中呈现,如下所示:
<script>
$(document).ready(function () {
..javascript which changes my html
});
</script>
答案 0 :(得分:2)
Wkhtmltopdf javascript执行的默认延迟是200ms;它可以通过以下方式轻松增加:
var pdfGen = new HtmlToPdfConverter();
pdfGen.CustomWkHtmlArgs = " --javascript-delay 1000 "; // 1 sec delay for js execution
请注意,您可以使用另一种方法来确保执行js代码:wkhtmltopdf可以等待某个特定的window.status值。例如,您可以在条形码渲染完成时更改window.status:
window.status = "READY";
并说wkhtmltopdf等待这个状态:
pdfGen.CustomWkHtmlArgs = " --window-status READY ";