【问题标题】:Javascript: How to create pdf file from HTML form or divJavascript:如何从 HTML 表单或 div 创建 pdf 文件
【发布时间】:2015-08-18 19:30:05
【问题描述】:

我是 Javascript / jQuery 新手,正在寻找一种方法来向页面添加一个按钮,允许用户从预定义的表单或 div 创建 pdf(例如,通过添加一类)。

我做了一些研究,但找不到在 JS 或 jQuery 中执行此操作的方法。

有没有办法通过 Javascript / jQuery 在客户端实现这一点,或者有人可以告诉我支持这个的免费软件插件吗?

我发现的唯一插件是 TCPDF 但这似乎非常大,我没有看到一种方法可以将其限制为页面上的特定表单或 div(而是打印整页)。

注意:我不需要覆盖图像,只需简单的 HTML,如表单字段或表格和文本。

非常感谢您在此提供的任何帮助, 迈克

【问题讨论】:

    标签: javascript jquery pdf pdf-generation tcpdf


    【解决方案1】:

    你可以试试jsPDF

    它是免费的和客户端。

    您可以从他们的“HTML 渲染”示例中看到,您可以从 HTML 的一部分创建 PDF

    编辑

    可能jsPDF不支持CSS

    如果你需要它,你可以尝试作为替代phantomJS,但它是一个命令行工具,它捕获一个网页作为屏幕截图。不知道这是否是您要搜索的内容

    【讨论】:

    • 非常感谢 - 我去看看。
    • 我检查了他们的网站并浏览了那里的文档 (mrrio.github.io/jsPDF/doc/symbols/jsPDF.html),但找不到将其限制为特定元素的示例。您能否提供 HTML 渲染示例的链接或在此处发布?
    • 更新:我在下面的帖子中找到了答案,但这里的问题是,这也表明你失去了所有自己的 CSS 样式,这是我需要保留的:stackoverflow.com/questions/18191893/… - 无论如何谢谢。
    • 您可以从他们的“HTML 渲染”示例中看到 doc.fromHTML 将元素的 id 作为源
    • 也感谢您。这不是适合我的工具,但我自己找到了答案(见下文)。
    【解决方案2】:

    pdfmake也是一个不错的简单方法

    它是从 HTML 创建 pdf 的简单而干净的库,您可以决定以后打印或不打印,

    下面的基本用法示例

        var docDefinition = {
        content: [
            'First paragraph',
            'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines'
        ]
    };
    
    var pdfDoc = printer.createPdfKitDocument(docDefinition);
    pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
    pdfDoc.end();
    

    【讨论】:

      【解决方案3】:

      与之前的回答一样,我建议使用小巧但功能强大且安全的 js 库 Print.js

      例子:

       <form method="post" action="#" id="printJS-form">
          ...
       </form>
      
       <button type="button" onclick="printJS('printJS-form', 'html')">
          Print Form
       </button>
      

      很简单

      【讨论】:

      • 但是print.js是用来打印的,不是用来生成pdf的。
      • 您可以使用“另存为 PDF”浏览器打印选项
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2020-10-28
      • 2013-11-11
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多