<?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 小景</title>
        <link>https://jingyuan-zheng.github.io/zh/tags/docx/</link>
        <description>Recent content in DOCX on 小景</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <copyright>Jingyuan Zheng</copyright>
        <lastBuildDate>Mon, 25 May 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://jingyuan-zheng.github.io/zh/tags/docx/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Mac 上一键翻译文档：PDF、Word、Markdown、图片和录音都能处理</title>
            <link>https://jingyuan-zheng.github.io/zh/p/translate-document-quick-action/</link>
            <pubDate>Mon, 25 May 2026 10:00:00 +0200</pubDate>
            <guid>https://jingyuan-zheng.github.io/zh/p/translate-document-quick-action/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/featured.png&#34; alt=&#34;Featured image of post Mac 上一键翻译文档：PDF、Word、Markdown、图片和录音都能处理&#34; /&gt;&lt;p&gt;本文介绍 Translate Document Quick Action，一个可以从 Finder 调用的 Mac 文档翻译工具，支持 PDF、Word、Markdown、TXT、图片 OCR 和音视频转录文本。&lt;/p&gt;&#xA;&lt;p&gt;我开源了一个新的小工具：&lt;strong&gt;Translate Document Quick Action&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;项目地址在这里：&lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/translate-document-quick-action&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Jingyuan-Zheng/translate-document-quick-action&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;它最初是一个 macOS Finder Quick Action：选中文档，右键运行，就在原文件旁边生成翻译后的文件。后来我把核心逻辑整理成了普通 Python 脚本，所以它也可以从命令行使用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为什么要做这个工具&#34;&gt;为什么要做这个工具&#xA;&lt;/h2&gt;&lt;p&gt;实际工作里的“翻译文档”很少只有一种格式。&lt;/p&gt;&#xA;&lt;p&gt;今天可能是 PDF 报告，明天是 Word 文档，后天又变成 Markdown 笔记、截图、扫描图，甚至是一段会议录音，需要先转录再翻译。&lt;/p&gt;&#xA;&lt;p&gt;很多工具只能解决其中一小段流程。&lt;strong&gt;Translate Document Quick Action&lt;/strong&gt; 想解决的是更日常的问题：尽量把这些常见文件格式放进同一个入口里，让你不用每次都临时找工具、改脚本、搬文件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;支持哪些格式&#34;&gt;支持哪些格式&#xA;&lt;/h2&gt;&lt;p&gt;目前项目支持：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;PDF&lt;/strong&gt;：通过 &lt;code&gt;pdf2zh-next&lt;/code&gt; 翻译&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DOCX&lt;/strong&gt;：直接修改 Word XML，尽量保留原始包结构和媒体引用&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Markdown&lt;/strong&gt;：保护常见 Markdown 结构后翻译&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TXT&lt;/strong&gt;：按行保留文本结构&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;图片&lt;/strong&gt;：可使用 macOS Vision OCR 的轻量方案，或接入 &lt;code&gt;manga-image-translator&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;音频和视频&lt;/strong&gt;：通过 MacWhisper 的 &lt;code&gt;mw&lt;/code&gt; CLI 生成转录文本，并可继续翻译转录稿&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;输出文件会生成在原文件旁边，并且不会覆盖已有文件。单语译文会使用目标语言后缀，例如 &lt;code&gt;_CN.docx&lt;/code&gt;；双语文件会使用源语言和目标语言后缀，例如 &lt;code&gt;_EN_CN.docx&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;翻译效果预览&#34;&gt;翻译效果预览&#xA;&lt;/h2&gt;&lt;p&gt;PDF 双语输出使用 &lt;code&gt;pdf2zh-next&lt;/code&gt; 的双语 PDF 模式，适合对照检查原文和译文，也尽量保持页面布局的可读性。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/featured.png&#34; alt=&#34;PDF 双语翻译输出&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;图 1：PDF 双语输出，方便对照原文与译文。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Markdown 和 TXT 的双语输出会按段落交错排列。这个形式很适合审校，因为你可以直接看到每段原文下面对应的译文。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/txt-output.png&#34; alt=&#34;TXT 翻译输出&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;图 2：TXT 输出保留按行检查的便利性。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/markdown-bilingual.png&#34; alt=&#34;Markdown 双语翻译输出&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;图 3：Markdown 双语输出会尽量保留常见文档结构。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;DOCX 的双语输出会在原段落后插入译文段落，同时尽量保留文档里的图片、媒体引用和原有结构。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/docx-bilingual.png&#34; alt=&#34;DOCX 双语翻译输出&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;图 4：DOCX 双语输出适合在 Word 里继续审阅。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;图片翻译则可以走 macOS Vision OCR 的轻量路径：识别图片里的文字，翻译后再把译文画回检测到的文本区域。它适合截图、图表、幻灯片这类相对干净的图片。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/image-bilingual.png&#34; alt=&#34;图片双语翻译输出&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;图 5：图片双语输出会把原图和译图并排放在一起。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;翻译引擎与隐私选择&#34;&gt;翻译引擎与隐私选择&#xA;&lt;/h2&gt;&lt;p&gt;文本翻译部分目前支持 Google、Bing 的网页端点，也支持本地 &lt;strong&gt;Ollama&lt;/strong&gt; 适配器。&lt;/p&gt;&#xA;&lt;p&gt;Google 和 Bing 的方式胜在方便，但它们不是官方付费 API，可能遇到限流，也可能因为上游行为变化而失效。如果是敏感文档，我更建议使用本地 Ollama 后端，或者把翻译适配器替换成正式的官方 API。&lt;/p&gt;&#xA;&lt;p&gt;这个项目刻意把“文件结构处理”和“翻译后端”分开，后续要换引擎会比较直接。&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装方式&#34;&gt;安装方式&#xA;&lt;/h2&gt;&lt;p&gt;先安装 Python 依赖：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m venv .venv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;如果要翻译 PDF，需要单独安装 &lt;code&gt;pdf2zh-next&lt;/code&gt;：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install --python python3.13 &lt;span class=&#34;s2&#34;&gt;&amp;#34;pdf2zh-next==2.6.4&amp;#34;&lt;/span&gt; --with &lt;span class=&#34;s2&#34;&gt;&amp;#34;BabelDOC==0.5.16&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;如果要使用 macOS Finder Quick Actions，可以运行：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 macos/install_quick_actions.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;命令行用法&#34;&gt;命令行用法&#xA;&lt;/h2&gt;&lt;p&gt;翻译 TXT、Markdown 和 DOCX：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_document_worker.py --engine google --lang-out zh --mode both file.txt notes.md paper.docx&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;用 macOS Vision OCR 的轻量方案翻译图片：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_image_worker.py --image-engine simple-macos --text-engine google --lang-in auto --lang-out zh --mode both image.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;转录音频或视频，并翻译转录稿：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_audio_worker.py --operation both --engine google --lang-out zh --mode dual interview.m4a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;使用时要注意什么&#34;&gt;使用时要注意什么&#xA;&lt;/h2&gt;&lt;p&gt;这是一个面向日常自动化的工具，不是“所有复杂文档都能完美翻译”的承诺。&lt;/p&gt;&#xA;&lt;p&gt;DOCX 目前覆盖正文、页眉、页脚、脚注、尾注和批注等常见内容。像 SmartArt、嵌入对象、公式、复杂文本框这类 Word 高级结构，仍然需要更多测试。&lt;/p&gt;&#xA;&lt;p&gt;图片里的 &lt;code&gt;simple-macos&lt;/code&gt; 引擎适合干净截图、图表和幻灯片。它不是 AI 修图或智能重绘。如果背景复杂，或者是漫画这类场景，更适合接入可选的 &lt;code&gt;manga-image-translator&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;如果你的翻译工作经常在 PDF、Word、Markdown、截图和录音之间来回切换，这个项目至少能把入口统一起来，让常见任务不用再散落在一堆临时脚本里。&lt;/p&gt;&#xA;&lt;h2 id=&#34;相关阅读&#34;&gt;相关阅读&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;如果你更关心纯文本的本地 AI 翻译和隐私，可以看 &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/zh/p/mac-lite-translator-local-ai-translation/&#34; &gt;Mac-Lite-Translator：基于 Google Gemma 的 Mac 本地翻译工具&lt;/a&gt;。&lt;/li&gt;&#xA;&lt;li&gt;如果你经常处理多语言写作，也可以看 &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/zh/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard：一把美式键盘覆盖多语言写作和学术符号&lt;/a&gt;。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
