From c7e1baf41733b7d4e6aa565cebcff354184e9cd3 Mon Sep 17 00:00:00 2001 From: zwt13703 Date: Wed, 8 Jul 2026 19:44:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20python=E6=B5=8B=E8=AF=95=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=20word->html->word?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- word_html_converter/Dockerfile | 13 + word_html_converter/README.md | 193 ++++++ word_html_converter/converter.py | 596 ++++++++++++++++++ word_html_converter/demo/demo-image.png | Bin 0 -> 1969 bytes word_html_converter/demo/demo.docx | Bin 0 -> 40346 bytes word_html_converter/demo/make_demo_docx.py | 71 +++ ...责任公司2025年一季度经济活动分析(内部定稿).docx | Bin 0 -> 82917 bytes word_html_converter/requirements.txt | 6 + 8 files changed, 879 insertions(+) create mode 100644 word_html_converter/Dockerfile create mode 100644 word_html_converter/README.md create mode 100755 word_html_converter/converter.py create mode 100644 word_html_converter/demo/demo-image.png create mode 100644 word_html_converter/demo/demo.docx create mode 100644 word_html_converter/demo/make_demo_docx.py create mode 100644 word_html_converter/demo/新疆玛纳斯发电有限责任公司2025年一季度经济活动分析(内部定稿).docx create mode 100644 word_html_converter/requirements.txt diff --git a/word_html_converter/Dockerfile b/word_html_converter/Dockerfile new file mode 100644 index 0000000..e801c48 --- /dev/null +++ b/word_html_converter/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.12-slim + +RUN apt-get update \ + && apt-get install -y --no-install-recommends libreoffice libreoffice-writer fonts-noto-cjk fonts-dejavu fontconfig \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY requirements.txt /app/requirements.txt +RUN pip install --no-cache-dir -r /app/requirements.txt +COPY converter.py /app/converter.py +COPY demo /app/demo + +ENTRYPOINT ["python", "/app/converter.py"] diff --git a/word_html_converter/README.md b/word_html_converter/README.md new file mode 100644 index 0000000..b336116 --- /dev/null +++ b/word_html_converter/README.md @@ -0,0 +1,193 @@ +# Word ↔ HTML High-Fidelity Converter + +一个基于开源工具的 `.docx` 与 `.html` 双向转换程序,目标是尽量保持 Word 文档在浏览器和再次转回 Word 后的视觉效果一致。 + +> 现实说明:DOCX 和 HTML/CSS 的排版模型不同,严格意义上的“完全无损双向转换”不能只靠普通 HTML 实现。本项目采用 LibreOffice Writer 的转换引擎做高保真转换,再做 HTML/CSS 后处理;同时提供 PDF 渲染级视觉对比报告,便于验收。 + +## 功能 + +- DOCX → HTML + - 保留字体、字号、颜色、粗体、斜体、下划线、删除线 + - 保留段落对齐、缩进、行距、页边距、分页符 + - 保留表格结构、边框、合并单元格、部分背景色样式 + - 保留图片、大小、位置、页眉页脚文本 + - 将 `