string.html.toDocx 仅为 string.markdown.toDocx 提供有限 HTML 子集适配,不是独立的通用网页转换器或浏览器排版引擎。它将标签解释为结构化 Word 内容,再调用 fsys.openXml.docx.builder;样式、Word XML、编号、关系与包结构只由基础库生成,保存统一交给 fsys.openXml.writer。
需要 fsys.openXml 0.13.0+ 及配套 zlib。生成过程不依赖 Office、MSXML、COM 或 .NET。无需先把 HTML 包装为 RTF,也不使用 altChunk。
import string.html.toDocx;
var html = '<h1 id="intro">标题</h1><p>Hello <b>bold</b> world。</p><ol start="3"><li>第三步</li><li>第四步</li></ol><p><a href="#intro">回到标题</a></p>';
var path,err,report=string.html.toDocx.save("/html-output.docx",html);
if(!path){print(err);return;}
raw.explore(path,"/select");
string.html.toDocx(html,options):返回二进制 DOCX、错误、报告。.save(path,html,options):返回输出路径、错误、报告。默认不覆盖。.buildParts(html,options):返回 XML 部件表、错误、报告;不进行文件 IO。表的键为 DOCX 包内相对路径,值为 UTF-8 XML。用于测试或自定义打包,不是通用 DOCX 编辑器。.defaults:可修改的默认选项表,与 Markdown 包装共用;与 Word builder 默认表独立。.packParts(parts,options):兼容保留的临时包接口,返回临时 DOCX 路径,调用者负责删除。一般应调用 save。save 直接使用公共 writer 的同目录临时包/原子提交,不创建逐 XML 部件的临时目录。二进制构造入口仍需一个临时 ZIP 文件,读取后删除;buildParts 不进行文件 IO。可在 options 中透传 writer 的 maxEntries/maxPartBytes/maxWriteBytes/level/protectPaths;默认每部件 16 MiB、总写入 128 MiB,超限明确失败。
详细选项、字体说明和降级行为见 Markdown DOCX 指南。
string.html(html,true);文本节点保留空白后,由正文/代码各自处理。不要预先把整段 HTML 再转义一遍。pre 和行内 code 保留内部空白。align,以及 style 内的 text-align。并非通用 CSS 支持。id 可以作为内部链接目标;不自动生成 Markdown 标题 slug。http、https、mailto。其它协议保留可见文字并给出警告,不执行脚本。ol start / li value 支持数值起始编号,0 保留。Word 编号不支持负起点,负值改从 0 开始并返回 list-start 警告;任务复选框使用 input type="checkbox" 与 checked 属性存在性判断。th 具有底色和粗体,第一行表头可跨页重复;过宽或复杂合并单元格按行列展开,不丢内容。支持范围以 Markdown 输出所需的标签为主,不承诺任意网页及其它富文本软件的逐像素一致性。