javascript - 如何使用 puppeteer 生成可编辑的 PDF
问题描述
我正在尝试使用 puppeteer 生成 PDF,一切正常,但输入和复选框不可编辑。在文档中,我找不到如何使其可编辑或其他地方。
可能吗 ?如果是这样怎么办?
// ...
const _conf = _.merge(conf, {
format: 'A4',
margin: {
left: '15px',
top: '15px',
right: '15px',
bottom: '15px'
}
});
const browser = await puppeteer.launch({ headless: true })
const page = await browser.newPage()
await page.setContent(html)
const buffer = await page.pdf()
await browser.close()
return buffer;
解决方案
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium。该 API 允许您调用 Chromium 功能来生成 PDF。API 没有做任何特别的事情,只是为 Chromium 的功能提供层。综上所述,这确实不是 Puppeteer 团队的问题。他们已经回答了这个@Pdf 表单输入不可编辑。
现在到 Chromium ...“另存为 PDF”选项旨在生成 PDF 以供打印,并且不支持将 HTML 表单控件映射到 PDF AcroForms 元素。根据项目成员@Issue 1024713: save-as-pdf doesn't generate editable form inputs的回答,他们不会很快实施它。
底线:使用 Puppeteer 是不可能的。
推荐阅读
- javascript - 打字稿声明
- c++ - 如何在 C++ 编译时实现有向无环图 DAG
- javascript - 使用“mongoose-unique-validator”的带有 Express 和 Mongoose 错误处理程序问题的节点和 MongoDB
- listview - 水平 StackLayout 中的 ListView - Nativescript Vue
- php - 根据 WooCommerce 结帐中的复选框添加或删除固定费用
- java - 如何在 Java 注释处理器中获取带有类型参数的 List 类型
- elasticsearch - 弹性搜索部分子字符串搜索
- python - While 循环应该在每次运行后返回一个新的随机整数
- python - 无法在 pandas 模块中使用 python 打开 spss 文件(.sav)
- c++ - 如果不使用 imshow(),则 OpenCV Mat obejct 不会从 VideoCapture 正确填充