【免费下载链接】dompdf.jsHTML to PDF in the browser — one line of code for selectable, searchable vector PDFs (10,000 pages). Pure frontend: zero backend, zero runtime deps. TypeScript over a Rust WebAssembly engine; an html2canvas/jsPDF alternative.项目地址https://gitcode.com/gh_mirrors/do/dompdf.js点击查看免费下载为什么需要 dompdf.js 表单导出dompdf.js是一个纯前端的 HTML 转 PDF 引擎基于 TypeScript Rust WebAssembly无需后端即可在浏览器里生成可搜索、可选择文字的矢量 PDF。除了普通内容导出它还提供了一套完整的表单导出能力把页面上的 input、select、checkbox、radio、textarea 等控件转换成可填写的 AcroForm 字段或保留为静态外观——导出的 PDF 打开后收件人依然可以直接点击勾选、在下拉框里选择、在文本框中打字。 相比 html2canvas 截图式方案dompdf.js 导出的表单字段是真实的 PDF 表单对象而不是看起来像表单的图片。3 分钟上手导出 HTML 表单为 PDF安装后只需在导出选项里加一个form配置即可。默认是static静态模式import dompdf from dompdf.js; const blob await dompdf(element, { format: a4, pagination: true, form: { mode: hybrid }, // 静态外观 可交互字段 });完整配置项与更多示例见官方文档 README.md 的 Form Export 章节TypeScript 类型定义位于 src/snapshot.tsexport type FormMode static | interactive | hybrid; export interface FormOptions { mode?: FormMode; include?: FormInclude[]; }仓库中的 examples-main/demo1.html 页面内置了一个包含姓名输入框、邮箱、复选框、单选按钮、下拉框和文本域的完整表单演示npm run serve启动后可以直接体验导出效果。3 种表单导出模式对比static、interactive 与 hybridform选项接受boolean | FormOptions三种模式的行为如下模式静态外观视觉还原可交互 AcroForm 字段适用场景static默认✅❌只读归档、打印件、审批留痕interactive❌✅纯表单类 PDF如报名单、申请表hybrid✅✅兼顾所见即所得与可填写推荐大多数场景几个容易踩的点⚠️form: true仍然只是默认的 static 模式。想要可填写字段必须显式写mode: interactive或mode: hybrid。⚠️ 表单值来自导出那一刻的 DOM 状态el.value、el.checked而不是 HTML 里的初始属性——用户改了再导出PDF 里就是改过的值。⚠️ 复选框和单选按钮在interactive模式下会省略底层静态图形只渲染 PDF 表单控件本身避免双重绘制。哪些 HTML 控件能生成可填写的 PDF 字段并非所有控件都有自然的 PDF 表单映射。当前 src/snapshot.ts 中的映射逻辑如下✅ 可生成 AcroForm 交互字段HTML 控件生成的 PDF 字段类型文本类inputtext、email、search、password…/Tx文本字段textarea/Tx文本字段select含全部 option 选项/Ch下拉选择字段checkbox/Btn按钮Yes/Off 状态radio同名分组/Btn按钮多个选项作为子字段️ 仅保留静态外观不产生交互字段日期时间类date、time、month、week、datetime-local其他range滑块、color取色器、file文件选择、progress进度条、meter仪表盘这些控件会以截图式的静态视觉呈现保证 PDF 里长得和页面一样。用 include 白名单控制要导出的控件类型include选项是一个白名单支持以下 11 种类型定义见 src/snapshot.tstext · textarea · select · checkbox · radio · date-time · range · color · file · progress · meter不在白名单里的控件会被完全忽略。典型用法form: { mode: hybrid, include: [text, textarea, select, checkbox, radio], } 小技巧如果页面上有调试用的滑块、颜色选择器等不想出现在 PDF 里的控件把include收窄到真正需要的几项即可输出更干净。深入原理生成的 PDF 里到底发生了什么在 wasm/src/paginate.rs 中可以看到Rust 引擎为每个可交互控件写入 PDF 规范定义的Widget 注释文本类控件生成/FT /Tx字段携带当前值/V、默认值/DV输入框的占位提示符会写入/TUtooltip并根据 CSStext-align计算文本对齐/Qselect生成/FT /Ch字段option列表整体写入/Opt当前选中项写入/V复选框/单选项生成/FT /Btn同组 radio 合并为一个父字段加多个子 Widget所有顶级字段汇总到根对象的/AcroForm字典并设置NeedAppearances true让 PDF 阅读器在字段被填写时自动重新排版外观。正是这套标准 AcroForm 结构使得 Acrobat、Chrome 内置 PDF 阅读器、预览类 App 都能识别并允许用户直接填写表单——这与encrypt选项里的annot-forms权限配合使用若希望收件人可填写记得在userPermissions中保留该权限见 README.md 的 PDF Encryption 章节。常见问题排查FAQ1. 导出的 PDF 里输入框没有值确认导出时机值读取的是 DOM 实时状态。若表单是动态渲染的SPA、异步填充请等数据写入 input 后再调用导出。2. 设了form: true为什么还不能填写true等价于 static 模式请改用form: { mode: interactive }或hybrid。3. 日期、滑块、取色器为什么不是可交互的PDF 规范没有与之对应的字段类型它们只保留静态外观。如需交互可在页面上把它们替换为文本输入框例如input typetext手填日期。4. 复选框在 PDF 里显示的是框标签还是纯框interactive/hybrid 模式下复选框与单选项只渲染为 PDF 表单控件本身标签文字保留不会出现重复的图形。小结dompdf.js 的表单导出把HTML 表单和PDF AcroForm打通了static保真截图式外观适合归档interactive/hybrid生成真实的 AcroForm 字段收件人可在 PDF 阅读器中直接填写include白名单让你精确控制哪些控件参与导出文本、下拉、复选框、单选四类控件可交互日期、滑块、文件等保留静态视觉。配合 README_CN.md 中的字体嵌入中文表单必配、页眉页脚、水印与加密等能力纯前端就能产出一份专业、可交互的 PDF 表单文档。赞分享【免费下载链接】dompdf.jsHTML to PDF in the browser — one line of code for selectable, searchable vector PDFs (10,000 pages). Pure frontend: zero backend, zero runtime deps. TypeScript over a Rust WebAssembly engine; an html2canvas/jsPDF alternative.项目地址https://gitcode.com/gh_mirrors/do/dompdf.js点击查看免费下载相关推荐使用 pdfminer.six 提取 PDF AcroForm 交互式表单字段从文档目录到字段值的完整实战指南使用 pdfminer.six 提取 PDF AcroForm 交互式表单字段从文档目录到字段值的完整实战指南 本文以 pdfminer.six 的官方 Ho后端使用PDFMiner.six提取PDF中的交互式表单字段AcroForm教程使用PDFMiner.six提取PDF中的交互式表单字段AcroForm教程 前言 PDF文档中的交互式表单AcroForm是一种常见的表单类型它允许后端react-admin 表单开发完全指南从 SimpleForm 到自定义表单布局与高级交互react admin 表单开发完全指南从 SimpleForm 到自定义表单布局与高级交互 导读 表单是后台管理界面中最核心的交互载体。react admi前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考