目录 / docx-cn-report-typography
docx-cn-report-typography
在使用 python-docx 生成中文技术报告(遥感评估/核查/监测类)时,需严格遵守以下排版硬约束及**可验证**做法: 1. **图与图题、表与表题必须同页显示**:通过设置段落属性 `keep_with_next=True`,确保图题紧随图片、表题紧随表格,防止图/表与标题分页。此属性作用于图题或表题段落,方向为“保持与下一段同页”。 2. **表头行禁止落在页尾**:除设置 `keep_with_next` 外,需显式设置表格首行为“标题行”(`tr._element.set('w:tblHeader', '1')`),确保跨页时自动重复表头,且表头不会单独出现在页尾。 3. **跨页表格自动重复表头**:通过 `tblHeader=True` 标记首行,Word 渲染时自动在下一页顶部重复表头,避免人工复制。 4. **单元格禁止跨页断开**:设置表格属性 `cantSplit=True`(`tblPr.append(OxmlElement('w:cantSplit'))`),防止单元格内容被分页截断。 5. **页眉页脚距纸边距离合规**:在文档节(section)中设置 `header_distance` 和 `footer_distance`,确保页眉/页脚与纸张边缘保持规范距离(如 1.5cm),避免“页眉太靠边”。 6. **页眉「左公司名 / 右编号」制表位陷阱处理**: - 使用制表位(tab stops)实现左右对齐时,必须清除继承样式中的居中制表位,否则“右编号”会被截胡。 - `paragraph.clear_all()` 无法清除继承的制表位,必须手动操作 `pPr` 子元素顺序:先删除旧 `tabs` 元素,再按「左对齐 → 右对齐」顺序重建,确保右对齐制表位生效。 - 验证方法:在问题样本上测试,确认页眉编号真正右对齐。 7. **表格列宽最小宽度约束**:设置每列 `gridCol` 的 `w:w` 属性,确保列宽不小于指定值(如 2cm),防止“表格列宽太窄”导致内容挤压或换行异常。 8. **满页封面独立节**:封面使用独立节(section),设置 `section.start_type = WD_SECTION.NEW_PAGE`,确保封面独占一页,且不影响后续页码与页眉。 9. **目录域刷新(WPS COM 兼容)**: - 使用 WPS COM 接口调用 `Fields.Update()` 刷新目录域,确保目录页码与标题正确。 - **绝不调用 Quit()**,避免进程残留;仅更新域后保存文档。 10. **页码重起**:在正文起始节设置 `section.restart_page_numbering = True`,使正文页码从 1 开始。 11. **输出路径单一来源**:所有报告输出路径由 `_proj.py` 统一配置,确保“报告输出到哪”可追溯、可审计。 12. **交付后 MD5 自证图像更新**: - 对报告中嵌入的每张图片计算 MD5 值,与源图比对。 - 交付包中附带 `image_md5_manifest.json`,实现“报告里的图到底换没换”的可验证性,杜绝“图没更新”问题。 13. **多县批量产出清单管理**:通过 `_proj.py` 维护县名-模板-输出路径映射表,确保“多县报告”交付目录结构正确,避免“交付目录不对”。 14. **版式自检脚本 `_qc_paging.py`**: - 自动检测分页异常(如表头掉页、图题分离)。 - 验证页眉右对齐是否生效(解析 XML 制表位配置)。 - 在问题样本上先行测试,确保脚本自身可靠,实现“分页自检”。 15. **PDF 级验证:标签写入 ≠ Word 识别**: - 即使 docx 中设置了标题样式或书签,也必须导出为 PDF 后验证标签结构(如使用 `pdfminer` 或 Adobe Acrobat 检查标签树)。 - “校验脚本须先在问题样本上自证”:所有自动化校验逻辑必须先在已知错误样本上验证其检出能力,确保有效性。 > 触发词覆盖:python-docx、docx 排版、报告生成、图表分页、图和图名分开、
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-11-12 17:58 | 1aaf9e53 | 可取 |
版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。