使用 jsPDF 将 HTML 输入值导出为 PDF

Posted

技术标签:

【中文标题】使用 jsPDF 将 HTML 输入值导出为 PDF【英文标题】:Exporting HTML input values to PDF using jsPDF 【发布时间】:2018-01-07 12:57:27 【问题描述】:

我有一个 html 表单,其中包含多个复选框类型的用户输入字段、文本区域和单选按钮,我需要将其作为 PDF 文件下载,其中包含用户给出的输入值。我成功使用 jsPDF 将 HTML div 导出为 PDF,但输入字段在 PDF 结果中没有任何值。如何使用输入值导出整个表单?这是我用于导出为 PDF 的 jsPDF javascript

self.onDownload = function (divId)
     var doc = new jsPDF();
     doc.fromHTML(document.getElementById(divId), 15, 15, 
          'width': 170
     );
     doc.save('sample-file.pdf');

【问题讨论】:

我在 jsPDF 库 rawgit.com/MrRio/jsPDF/master/docs/index.html 中找不到关于 fromHTML 函数的任何文档,我能找到的最接近的东西是 addHTML 函数,它已被弃用以支持基于矢量的解决方案,此处发布了一个示例:cdn.rawgit.com/MrRio/jsPDF/master/examples/html2pdf/… 我会考虑查看文档和此示例,而不是使用未记录/严重弃用的函数。 【参考方案1】:

我本人一直在构建您所描述的功能。

关于您遇到的问题,我目前的理解是大多数 PDF 生成库,如 jsPDF,无法读取/解释输入字段的值属性,这就是它们没有出现在 PDF 中的原因。

解决此问题的一种方法是使用 DOM 到图像生成器,然后将图像保存为 PDF。虽然它不是最优雅的解决方案,但它确实有效,并且是我迄今为止找到的最佳解决方案。我一直在使用 html2canvas 库来创建图像,并使用 jsPDF 来创建 pdf。

有一个教程here,它带你通过使用html2canvas 和jsPDF 设置一个基本的html 到pdf 功能。

【讨论】:

【参考方案2】:

这似乎是错误的,尽管是一年之后。

通过使用

doc.text(20, 20, document.getElementById("YourDiv/Paragraph").innerHTML);

document.getElementById("InputField").value

我可以正确使用 html 文件中的元素。


将其保留在此处以避免将来出现混淆。 对于此处询问的变量: Variables in jsPDF

【讨论】:

以上是关于使用 jsPDF 将 HTML 输入值导出为 PDF的主要内容,如果未能解决你的问题,请参考以下文章

jsPDF 将html代码中的table导出为pdf文件怎么弄

使用htm2canvas+jsPDF将指定区域导出成PDF

vue pdf导出 html2canvas+jspdf

jsPDF 导出html为pdf内容截断终极解决方案

如何使用 JavaScript 或 jQuery 在客户端将 html 页面导出为 pdf?

jsPDF自动右对齐x位置错误