当前位置: 首页 > 知识库问答 >
问题:

使用NodeJS在现有PDF表单中填写数据

金阳曜
2023-03-14

问题:我有一个需要填写的现有PDF表单(*.PDF)。如何使用节点JS动态填充它?

共有3个答案

程枫
2023-03-14

我知道这是一个迟到的反应,但我找到了一个很好的库称为PDF-LIB

PDF-LIB

它是如此的功能丰富;

这是一个使用它的代码示例

const { PDFDocument } = require('pdf-lib')
const fs = require('fs')
const util = require('util')

const data = {
  "name": "Alice Alley",
  "dateOfBirth": "01/01/1990",
  "favoriteFood": "Glue"
}

async function createPdf(input, output) {
  const readFile = util.promisify(fs.readFile)
  function getStuff() {
    return readFile(input)
  }
  const file = await getStuff()
  const pdfDoc = await PDFDocument.load(file)
  const form = pdfDoc.getForm()
  Object.keys(data).forEach((element) => {
    const field = form.getTextField(element)
    field.setText(data[element])
  })
  const pdfBytes = await pdfDoc.save()
  fs.writeFile(output, pdfBytes, () => {
    console.log('PDF created!')
  })
}
createPdf("input.pdf", "output.pdf")

// PDF library https://pdf-lib.js.org/
// PDF form creation https://www.pdfescape.com/
顾承平
2023-03-14

对于仍在搜索解决方案的用户,请提供pdf库(https://pdf-lib.js.org / https://www.npmjs.com/package/pdf-lib)一看。

有一个关于如何使用pdf-lib Node.js包填写PDF表单文本字段的好线程:https://github.com/Hopding/pdf-lib/issues/48

谷泽宇
2023-03-14

查看npm上的以下模块:

  • 填写pdf

node-pdffiller是PDFtk的包装器,PDF Toolkit:

  • https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

PDFKit网站上有很多很好的文档:

  • http://pdfkit.org/

这些模块具有不同的功能和API。你应该找到适合你需要的东西。

还有一篇很好的文章:

  • 使用Express生成PDF
 类似资料:
  • 我对Java比较陌生,我想用PDFbox取代现有的基于iText的Javascript。(Java 2.0)我有一个pdf-Formsheet(但这个表没有Acroform条目),我想用信息(姓名、出生日期等)填充它。pdf是一个矩形的特殊大小(像一张联系人卡片)。 文本不显示。我错过了什么?我想,只要有正确的文字位置,我就可以简单地在PDF上写字了?

  • 问题内容: 是否有PHP库可用于填写PDF表单,然后将其保存(展平)为PDF文件? 问题答案: 这里提到的库和框架很好,但是如果您只想填写一个表格并将其展平,我建议您使用命令行工具pdftk(PDF工具包)。 您可以从php调用命令行,命令是 formfile.pdf fieldinfo.fdf outputfile.pdf 您将需要查找FDF文件的格式,以便生成填写字段的信息。这是一个很好的链接

  • 我是新的PDF框,需要填写的信息在PDF表单,其中有节和字段名: 填写信息的名称和框 地址和填写信息的框 城市框来填充信息。 目前没有错误上面的代码正在工作填写一些垃圾字段。 需要用方框信息填满姓名,方框信息填满姓名,方框信息填满地址,方框信息填满地址,方框信息填满地址

  • 问题内容: 我需要在我的angularjs网络应用中自动填写pdf表单。pdf表单是在应用程序外部生成的,因此我可以根据需要进行配置。 在我的应用程序中,我只需要加载pdf,修改表单字段并展平文件,以使其不再看起来像表单。 你知道有什么办法吗? 编辑:我找到了iText,但它是一个Java库,不适用于我的项目(该应用程序在平板电脑上运行,因此我正在寻找100%HTML5的东西) 问题答案: 我找到

  • 考虑到字段名称结构可能发生了变化,我尝试像第一次那样阅读format/fields。(代码如下)。但是,现在它告诉我没有要读取的字段()。 所以,我开始做一些搜索,并找到了参考另一种类型的PDF结构,他们可以切换到;XFA.老实说,我还没有找到任何令人满意的文档/示例,但我确实找到了一些代码,看起来应该可以在XFA PDF的结构中阅读。(代码如下)。我尝试了两种不同的方法。第一个基本说明XfaFi

  • 代码: 这段代码没有异常,一切似乎都很好,但是如果我打开填充的pdf,Adobe Reader会说这样的话: 此文档启用了扩展功能。此文档自创建以来已更改,无法再使用扩展功能。 有些字段填写正确,但我无法编辑。某些字段为空。若我通过单击Adobe Reader中的“导入数据”手动选择xml,则表单填写正确,所以我猜xml中并没有错误。