如何在 node.js 中生成 PDF

Posted

技术标签:

【中文标题】如何在 node.js 中生成 PDF【英文标题】:How to Generate PDF in node.js 【发布时间】:2013-06-10 22:46:00 【问题描述】:

我想生成一个模块,该模块将通过将输入作为我的发票生成 PDF,并且该 PDF 文件会自动发送给客户的邮件 ID。在第一步中,我得到了一些代码并尝试生成 PDF。该代码运行正常,我能够生成 PDF。但我无法打开文件。

对于代码我使用这个链接:http://github.com/marak/pdf.js/

【问题讨论】:

此链接我使用“github.com/marak/pdf.js”,我得到了一些生成 PDF 的解决方案……但我面临一个问题,即 PDF 无法打开。它在打开时说一些错误......请任何人检查一下并提出一些建议...... 提到的 github 项目是“已弃用 - 不要使用” 【参考方案1】:

另一种方法,使用 PDFKit 从头开始​​...

使用 Express https://blog.koenvangilst.nl/generating-a-pdf-with-express/ 生成 PDF

PDFKit,首页https://pdfkit.org/

pdfkit,npm 页面https://www.npmjs.com/package/pdfkit

【讨论】:

【参考方案2】:

您可以使用Puppeteer (Headless Google Chrome Node API) 生成 PDF:

Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools Protocol 控制 Chrome 或 Chromium。 Puppeteer 默认运行 headless,但可以配置为运行完整(非无头)Chrome 或 Chromium。

您可以使用page.pdf() 轻松生成 PDF:

'use strict';

const puppeteer = require('puppeteer');

(async () => 
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('https://example.com/');

  await page.pdf(
    path: 'example.pdf',
  );

  await browser.close();
)();

然后你可以直接从 Node.js 执行程序:

node puppeteer.js

【讨论】:

【参考方案3】:

安装http://phantomjs.org/并安装幻象节点模块https://github.com/amir20/phantomjs-node

这里是一个渲染pdf的例子

var phantom = require('phantom');

phantom.create().then(function(ph) 
    ph.createPage().then(function(page) 
        page.open("http://www.google.com").then(function(status) 
            page.render('google.pdf').then(function() 
                console.log('Page Rendered');
                ph.exit();
            );
        );
    );
);

【讨论】:

我尝试了上面的代码,但我无法在 sol 中访问。 PLz任何想法在这里分享............ 我想通过 Node.JS 生成 PDF 并通过邮件发送该 PDF 文件..PLZ 提出一些建议,可以提供一些可以锻炼并提供更好解决方案的东西....

以上是关于如何在 node.js 中生成 PDF的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript/Node.js 中生成 MD5 文件哈希?

在 node.js 中生成密码重置令牌

如何在 Prestashop 中生成 pdf?

如何在 PHP 中生成 PDF/A-1a pdf?

如何在 Xamarin Forms 中生成 PDF 第一页的缩略图

如何在 Ruby-on-Rails 中生成 PDF 表单