我有一个很久以前用 PHP 编写的旧系统,我想更新到 node.js 以允许我与更现代的系统共享代码。不幸的是,PHP 系统的主要功能之一是允许它加载现有 PDF 文件(恰好是政府表格)、填写用户信息并向浏览器提供包含所有该信息存在。
我考虑过制作一个 PHP 脚本,它只会进行 PDF 自定义并使用节点来处理其他所有内容,但似乎这样的事情应该能够在不需要安装 PHP 的情况下完成。
知道如何仅使用节点来解决我的问题吗?
我有一个很久以前用 PHP 编写的旧系统,我想更新到 node.js 以允许我与更现代的系统共享代码。不幸的是,PHP 系统的主要功能之一是允许它加载现有 PDF 文件(恰好是政府表格)、填写用户信息并向浏览器提供包含所有该信息存在。
我考虑过制作一个 PHP 脚本,它只会进行 PDF 自定义并使用节点来处理其他所有内容,但似乎这样的事情应该能够在不需要安装 PHP 的情况下完成。
知道如何仅使用节点来解决我的问题吗?
经过大量搜索和几乎放弃,我最终发现HummusJS库会做我想做的事!
2020 年 4 月更新:在我发布此内容之后的几年中,出现了其他选项,看起来它们应该可以工作。由于这个问题仍然受到很多关注,我想我会回来更新一些其他选项:
pdf-lib - 这是我目前最喜欢的;效果很好。它可能对非常大的 PDF 有限制,但它在不断改进,你几乎可以用它做任何事情——如果不是通过帮助程序 API,然后通过它们提供的抽象,它允许你使用几乎任何原始 PDF 功能,尽管这需要对 PDF 文件格式的了解比大多数人都多。
值得注意的是,pdf-lib 不支持加载加密的 pdf,但您可以使用qpdf之类的东西在加载之前剥离加密。
https://www.npmjs.com/package/nopodofo - 这个应该是最好的选择之一,但我无法在 Mac 上自己运行
https://www.npmjs.com/package/node-pdfsign - 不完全相同,但可以与其他工具一起使用在 PDF 上进行数字签名。还没用过,但希望能用
2021 年 12 月更新:我仍在使用pdf-lib,我认为它仍然是最好的可用库,但是在过去几年中出现了很多用于处理 PDF 的新库,因此值得四处看看少量。