0

我需要将 html 转换为 pdf,我找到了 jspdf lib。但我遇到了麻烦。如果<p>标签里面包含一些这样的文本:text<br /><br />text它不起作用。我在控制台中有以下错误:

Uncaught TypeError: Cannot read property '1' of undefined
at Renderer.renderParagraph (from_html.js:967)
at Renderer.setBlockBoundary (from_html.js:1018)
at DrillForContent (from_html.js:529)
at DrillForContent (from_html.js:497)
at from_html.js:669
at done (from_html.js:539)
at loadImgs (from_html.js:569)
at process (from_html.js:667)
at Object.jsPDFAPI.fromHTML (from_html.js:1105)
at saveDocument (index.js:17)

在脚本导入中,我有下一个模块:

  • jquery.min.js
  • jspdf.min.js
  • split_text_to_size.js
  • from_html.js
  • standard_fonts_metrics.js

HTML:

<div id="blank">
     <p>some text<br /><br />another text</p>   
</div>
<button onclick="saveDocument();">Save PDF</button>

JavaScript:

function saveDocument() {
    var pdf = new jsPDF();
    var content = $('#blank').html();
    pdf.fromHTML(content, 15, 15, {
        'width': 170
    });
    pdf.save('document.pdf');
}

我现在不知道怎么解决?

4

2 回答 2

1

你必须使用单独的<p>标签:

<p>some text</p><br /><br />
<p>another text</p>   
于 2019-09-18T11:09:19.397 回答
0

最终使用https://www.npmjs.com/package/html2pdf-fix-jspdf,它通常是 jspdf 的包装器。

在我的情况下,单独的 p 标签是不可能的,我为此尝试了所有可能的解决方案。喜欢使用

和 \r\n 但在我的情况下没有任何作用。

只是分享,因为它可能会有所帮助

于 2020-01-11T07:03:45.000 回答