ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

html-to-docx 实操指南:表格、页码、字体在 Word 里不走样

html-to-docx 实操指南:表格、页码、字体在 Word 里不走样 html-to-docx 实操指南表格、页码、字体在 Word 里不走样【免费下载链接】html-to-docxHTML to DOCX converter项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docxhtml-to-docx 是一个纯 JS 的 HTML 转 DOCX 转换库传进去 HTML 字符串拿回来的是一份 Word 2007、Google Docs、LibreOffice Writer 都能打开的 .docx 文件。它定位是把文档转出来不是把网页渲染出来——这句话决定了下面所有的优势和边界。识别需求HTML 转 Word 保留表格和样式典型场景业务数据已经以 HTML 形态存在邮件模板、报表页面、富文本编辑器产物但交付方要可下载可二次编辑的 Word。手工复制粘贴会丢表格边框、颜色、分页重排又不 scale。它接收的是带内联样式的块级 HTMLp、table、ul/ol、img、h1–h6输出 .docx 里符合 Office Open XML 规范的各部件。样式映射层相当于翻译官把 CSS 方言逐条转成 Word XML 里的对应写法。转换链路HTML 进去到 docx 出来经过什么HTML 字符串 │ 先压缩空白与换行 ▼ html-to-vdom ──► vdom 虚拟树 │ ▼ render-document-file.js 逐节点翻译成 Word XML │ 段落 / 表格 / 列表 / 图片base64 或远程下载 ▼ DocxDocument 组装 OOXML 部件document、styles、numbering、theme… │ ▼ JSZip 压缩 ──► BufferNode或 Blob浏览器vdom 到 Word XML 的逐节点翻译在 src/helpers/render-document-file.jsOOXML 部件生成在 src/docx-document.js。两条链路解答两个常见疑惑。单位换算是库内做的页边距接受 px/cm/inch落进 XML 时统一换算成 TWIP1/20 点选项归一化逻辑见 src/html-to-docx.js。输出形态自动探测存在 Buffer 全局量就返回 BufferNode 侧只有 Blob 就返回 Blob浏览器侧两者都没有直接抛错入口逻辑在 index.js。默认值集中在 src/constants.js纵向、美国 Letter 纸12240×15840 TWIP、Times New Roman 22 半磅即 11pt。跑通第一份HTML 转 Word 生成带页码的文档下面这段代码在 Node 里做一件事把一段含表格的 HTML 转成带页脚页码的 docx 文件。const fs require(fs); const HTMLtoDOCX require(html-to-docx); const html h1月度对账单/h1 p stylecolor:#c0392b;逾期金额¥1,280.00/p table trth项目/thth金额/th/tr trtd服务费/tdtd¥1,000.00/td/tr trtd滞纳金/tdtd¥280.00/td/tr /table; (async () { const docOptions { title: 月度对账单, footer: true, pageNumber: true, table: { row: { cantSplit: true } }, }; const buffer await HTMLtoDOCX(html, null, docOptions); fs.writeFileSync(./statement.docx, buffer); })();两个容易踩的点第二个参数是页眉 HTML、第四个参数是页脚 HTML不传时置对应 flag 为 true 会补一个空段落占位pageNumber: true必须配footer: true才会显示页码是塞进页脚段落的 PAGE 域。装包与看源码npm install html-to-docx git clone https://gitcode.com/gh_mirrors/ht/html-to-docx # 可选浏览源码关键选项逐个拆页面、字体与分页选项作用默认值orientation页面方向portraitpageSize.width/height纸张尺寸接受 TWIP/px/cm/inch上限 3168012240×15840margins上/右/下/左/页眉距/页脚距六项1440/1800/1440/1800/720/720font/fontSize正文字体 / 字号半磅单位也可传 11ptTimes New Roman / 22header/footer启用页眉 / 页脚falsepageNumber页脚页码依赖 footer 开启falsetable.row.cantSplit禁止单行跨页拆分falseskipFirstHeaderFooter首页不显示页眉页脚falsenumbering.defaultOrderedListStyleType有序列表默认样式decimallang拼写检查语言码en-USdecodeUnicode先对全文做 Unicode 实体解码false注意fontSize的单位是半磅22 等于 11pt。传字符串 12pt 也行库内会按 pt 换算成 HIP半点。进阶技巧分页、列表编号、表格行不跨页分页只有一个约定写法。CSS 的 page-break 不被支持只认下面这个 div且 div 内部内容会被忽略别往里放正文p第一页到此结束/p div classpage-break stylepage-break-after: always/div有序列表的样式和起始编号可控。ol stylelist-style-type: lower-alpha contenteditable="false">【免费下载链接】html-to-docxHTML to DOCX converter项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表