<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DOCX on Uni星人</title><link>https://unicornumr1314.github.io/tags/docx/</link><description>Recent content in DOCX on Uni星人</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 21 Feb 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://unicornumr1314.github.io/tags/docx/index.xml" rel="self" type="application/rss+xml"/><item><title>工具介绍：源码合并为 Word（去空行，软著专用）</title><link>https://unicornumr1314.github.io/posts/%E5%B7%A5%E5%85%B7-%E6%BA%90%E7%A0%81%E5%90%88%E5%B9%B6%E4%B8%BAword%E5%8E%BB%E7%A9%BA%E8%A1%8C/</link><pubDate>Sat, 21 Feb 2026 10:00:00 +0800</pubDate><guid>https://unicornumr1314.github.io/posts/%E5%B7%A5%E5%85%B7-%E6%BA%90%E7%A0%81%E5%90%88%E5%B9%B6%E4%B8%BAword%E5%8E%BB%E7%A9%BA%E8%A1%8C/</guid><description>&lt;p&gt;本工具用于将多份源代码文件合并为一个 Word 文档，并在合并过程中自动去除空行、统一格式。支持输入页眉文本（每页顶部左对齐显示），适合在申请软件著作权时快速生成“排版规范、紧凑清晰”的源代码文档。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;功能要点：
&lt;ul&gt;
&lt;li&gt;多文件合并（按文件名排序），可指定“起始文件”&lt;/li&gt;
&lt;li&gt;去除空行（仅空白字符的行也会删除）&lt;/li&gt;
&lt;li&gt;每个文件可选择是否从新页开始（分页）&lt;/li&gt;
&lt;li&gt;页眉文本左对齐显示于每页顶部&lt;/li&gt;
&lt;li&gt;统一格式：宋体（SimSun），字号 10 磅&lt;/li&gt;
&lt;li&gt;本地处理，不上传文件&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;适用场景：
&lt;ul&gt;
&lt;li&gt;软著申报时提交的源代码文档整理与排版&lt;/li&gt;
&lt;li&gt;将分散在多个文件中的示例代码合并为统一格式的文档&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;直接打开工具：../static/tools/源码合并为Word(去空行).html&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开工具页面，填写“页眉文本”（如“软件著作权-源代码文档”）。&lt;/li&gt;
&lt;li&gt;拖拽或选择多个源文件，工具会按文件名排序；可在“起始文件”下拉中设定从哪个文件开始。&lt;/li&gt;
&lt;li&gt;根据需要勾选“文件之间插入分页”，便于分卷阅读与审阅。&lt;/li&gt;
&lt;li&gt;点击“生成 Word 文档”，完成后点击“下载生成的文档”保存。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;提示：工具在浏览器端完成处理，适合隐私与合规要求较高的场景。*** End Patch***}ETwitterозяется. There was an error. Please try again.***}``` &amp;ndash;&amp;gt;&lt;/p&gt;</description></item><item><title>删除-docx-空行工具脚本</title><link>https://unicornumr1314.github.io/posts/%E5%88%A0%E9%99%A4-docx-%E7%A9%BA%E8%A1%8C/</link><pubDate>Wed, 12 Nov 2025 21:16:18 +0800</pubDate><guid>https://unicornumr1314.github.io/posts/%E5%88%A0%E9%99%A4-docx-%E7%A9%BA%E8%A1%8C/</guid><description>&lt;p&gt;本文介绍仓库内的脚本&lt;a href="https://unicornumr1314.github.io/tools/dele_null_line.py" rel=""&gt;源代码文件&lt;/a&gt;，它可以自动删除 &lt;code&gt;.docx&lt;/code&gt; 文档中的空段落，并在非空段落中合并连续换行（将多个连续换行替换为一个）。脚本同时会处理表格单元格内的段落。&lt;/p&gt;
&lt;p&gt;本工具最初用于在申请软件著作权时，批量清理源代码文档中的空行，让提交给软著的源代码文档更加紧凑、排版整齐，方便审核和归档。&lt;/p&gt;
&lt;p&gt;如果你不方便在本地安装 Python，也可以使用浏览器版工具：&lt;a href="../static/tools/dele_null_line.html" rel=""&gt;删除 DOCX 空行（网页版）&lt;/a&gt;，直接在网页中选择 &lt;code&gt;.docx&lt;/code&gt; 文件并下载清理后的文档。&lt;/p&gt;
&lt;p&gt;主要功能&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;删除文档正文中空的段落（完全没有可见字符的段落）。&lt;/li&gt;
&lt;li&gt;在非空段落中把连续的 &lt;code&gt;\n&lt;/code&gt; 合并为单个 &lt;code&gt;\n&lt;/code&gt;，避免多余的空行或换行符导致格式混乱。&lt;/li&gt;
&lt;li&gt;遍历文档内的表格，按单元格同样规则清理空段落并合并换行。&lt;/li&gt;
&lt;li&gt;提供简单的 Tkinter GUI，交互选择输入/输出文件路径，适合非命令行用户。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;依赖&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;python-docx&lt;/code&gt;（包名 &lt;code&gt;python-docx&lt;/code&gt;）来读写 Word 文档。仓库中的脚本示例使用 &lt;code&gt;from docx import Document&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pip install python-docx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;（如果要使用 live GUI，请确保当前 Python 环境包含 Tkinter。Windows 上自带标准 Python 通常包含 Tkinter。）&lt;/p&gt;
&lt;p&gt;如何使用&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;图形界面（推荐，脚本默认行为）:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;运行脚本：&lt;/p&gt;
&lt;p&gt;python 原始内容文档/dele_null_line.py&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;脚本会弹出文件选择对话框，请选择要处理的 &lt;code&gt;.docx&lt;/code&gt; 文件，并指定输出文件名。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;作为模块调用（在其他脚本中复用函数）:&lt;/p&gt;
&lt;p&gt;from 原始内容文档.dele_null_line import remove_empty_lines_from_docx
remove_empty_lines_from_docx(&amp;lsquo;input.docx&amp;rsquo;, &amp;lsquo;output.docx&amp;rsquo;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实现要点（供维护者参考）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;段落处理：脚本先遍历 &lt;code&gt;doc.paragraphs&lt;/code&gt;，把纯空的段落标记删除，非空段落使用正则 &lt;code&gt;re.sub(r&amp;quot;\n+&amp;quot;,&amp;quot;\n&amp;quot;, text)&lt;/code&gt; 合并连续换行。&lt;/li&gt;
&lt;li&gt;表格处理：进入每个 &lt;code&gt;doc.tables&lt;/code&gt;，对每个单元格的 &lt;code&gt;cell.paragraphs&lt;/code&gt; 做同样的清理与合并。&lt;/li&gt;
&lt;li&gt;删除操作：对要删除的段落或单元格段落，使用底层 XML 节点 &lt;code&gt;._element.getparent().remove(...)&lt;/code&gt; 执行删除，避免改变段落集合时引发索引问题（通过反向索引删除）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;示例场景&lt;/p&gt;</description></item></channel></rss>