c#mvc nreco HtmlToPdfConverter问题将html文档转换为pdf

时间:2016-04-28 17:10:46

标签: javascript c# html pdf

我正在使用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>

1 个答案:

答案 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 ";