点点工程机械
116.25M · 2026-04-01
先上一张图:
这个是 Word 中我们高频使用的文档案例,在合同,公文,档案等各个场景中都能看见,但是我测试了市面上10多个主流开源的富文本/文档编辑器,没有一个能完整把上面的样式 1: 1 解析出来,99%解析的效果都是这样:
其实在很多在线文档系统里,DOCX 导入后的效果之所以容易失真,是因为它们通常只保留了最表层的字号、颜色和段落,而丢失了真正决定版式的细节:
在 Web 编辑器领域,中文排版长期被忽视。大多数编辑器仅关注英文排版模型,导致中文文档出现标点溢出、行距不均、分散对齐缺失等问题。
为了解决这个痛点,我们花了半年时间做技术研究和验证,终于实现了一套高精度Docx解析算法,支持各种复杂的Word样式排版的解析渲染,并能在Web端实时编辑。
没错,它就是 jitword,对标 Word 排版效果,原生支持中文排版规范,实现高保真文档导入导出。
老规矩,先上地址:
开源sdk: github.com/jitOffice/j…
JitWord 从底层重新设计了排版引擎,原生支持 GB/T 标点压缩、分散对齐、字符缩放、网格行距等专业排版特性,并实现了与 Word 格式的高保真双向互转。(虽然目前还达不到100%精度,但实测已经是业内top3的方案了)
下面是我们设计的高精度docx解析的技术架构:
大家可以参考一下,下面我会和大家详细分享一下我们实现的方案细节。
传统 Web 编辑器只有左对齐、居中、右对齐、两端对齐四种模式。JitWord 额外实现了 分散对齐(Distribute) ,这是中文公文和正式文档中的必备排版方式。
实现原理:
间距 = (行宽 - 文本宽) / (字符数 - 1)text-align: justify + text-align-last: justify + text-justify: inter-character效果: 每个字符等间距分布,行首行尾严格对齐,无论段落宽度如何变化都保持均匀美观。
支持 33% 到 200% 共 8 档水平缩放预设,可在不改变字号的前提下调整文本密度。
技术方案:
transform: scaleX() 实现无损缩放w:rPr > w:w 字符缩放属性应用场景: 表格单元格内容过长时压缩显示、标题需要加宽强调效果、模拟 Word 中的字符缩放格式。
JitWord 内置四项核心 CJK 排版特性,可从 Word 文档中自动识别并还原:
| 特性 | 作用 | 技术实现 |
|---|---|---|
| 严格折行 | 防止句号、逗号等标点出现在行首 | line-break: strict + 东亚换行规则检测 |
| 标点压缩 | 连续标点(如 」、) 自动挤压间距 | CSS text-spacing-trim: normal (渐进增强) |
| 字距控制 | 保持 CJK 字符等宽边界 | font-kerning: none 禁用西文字距调整 |
| 中英文自动间距 | 中文与英文/数字之间自动添加间距 | CSS text-autospace: normal (渐进增强) |
导入兼容性: 从 Word 文档的 <w:documentLayout> 配置中自动提取 characterSpacingControl、doNotWrapTextWithPunct、noPunctuationKerning、balanceSingleByteDoubleByteWidth 等属性,精确映射到对应的 CSS 排版规则。
支持以 磅值(pt) 为单位的字间距调整,与 Word 完全一致:
-2pt 到加宽 5pttwentieths of a point(Word 原生单位)支持 Word 文档网格(Document Grid)特性,段落基线自动对齐到文档网格,完美还原政府公文 "每页固定行数" 的排版要求。
JitWord 采用自研的中间表示(IR)架构,实现从 Word 到编辑器的高保真格式转换:
DOCX 文件 → XMLAST 解析 → DocIR 中间表示 → JitWord JSON 映射 → Schema 合规校验
关键能力:
编辑器内容反向导出为标准 Word 文档:
AlignmentType.DISTRIBUTE)ptValue × 20)自研的 PDF 导出引擎,确保所见即所得:
全链路采用 磅值(pt) 作为标准单位,与 Word 原生体系一致:
| 场景 | 单位 | 转换关系 |
|---|---|---|
| 编辑器内部 | pt | 基准单位 |
| CSS 渲染 | px | 1pt = 1.333px |
| Word 文档 | twips | 1pt = 20 twips |
| 导入兼容 | half-points | 1pt = 2 half-points |
| 能力 | JitWord | 通用富文本编辑器 | 在线协作文档 |
|---|---|---|---|
| 分散对齐 | 原生支持 | 不支持 | 部分支持 |
| 字符缩放 | 33%-200% | 不支持 | 不支持 |
| 标点压缩 | 自动识别 | 不支持 | 不支持 |
| 严格折行 | 智能启用 | 不支持 | 基础支持 |
| 网格行距 | 完整支持 | 不支持 | 不支持 |
| DOCX 高保真导入 | 五阶段 IR 管线 | 基础 HTML 转换 | 有损导入 |
| DOCX 导出 | 精确格式映射 | 有限支持 | 有损导出 |
| PDF 导出保真度 | 像素级 + 双渲染 | 浏览器打印 | 服务端渲染 |
JitWord 从排版引擎层面解决了中文 Web 排版的核心痛点,通过自研的分散对齐算法、CJK 排版规范支持、五阶段 IR 导入管线和像素级 PDF 导出,实现了 Web 端对 Word 排版效果的真正对标。
无论是政府公文的严格格式要求,还是企业文档的专业排版需求,我们都能提供开箱即用的解决方案。
当然我们还在持续迭代优化,打造更高精度,更智能的AI协同文档系统,让个人和企业能更低成本将传统 Office “搬到”线上。
大家有好的建议随时交流反馈~