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

c# mvc nreco HtmlToPdfConverter issue converting html document to pdf

我正在使用 nReco HtmlToPdfConverter class 尝试将 html 文档转换为 pdf。除了一个例外,这工作正常。我有 javascript,它是 document.ready 上的 运行,并且 javascript 在 html 转换为 pdf 时未呈现,导致我的条形码(由我的 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>

Wkhtmltopdf javascript 执行的默认延迟是 200 毫秒;它可以通过以下方式轻松增加:

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