Word → PDF 转换器,免费
将 Word 文件(.docx)即时转换为 PDF。无需注册。您的文件从不离开设备。
支持 .docx · 最大 25 MB
工作原理
- 上传 Word 文件:拖放或选择要转换的 .docx 文件。
- 配置选项:选择所需的页面大小和边距。
- 执行转换:点击「转换为 PDF」以生成 PDF。转换在浏览器中即时完成。
为什么转换为 PDF?
PDF 是通用文档格式。将 Word 文档转换为 PDF 可确保在所有设备和操作系统上格式一致,使文档只读以防止意外修改,减小文件大小,并非常适合分享、归档和专业提交。PDF 随处兼容,并保留您的原始格式。
「DOCX 转 PDF」到底意味着什么
`.docx` 文件并不是在 Word 中看到的那样一个单一文档。它是一个 ZIP 压缩包(ISO/IEC 29500-2 定义的 Open Packaging Conventions 容器),里面装着一棵 XML 文件树、嵌入的图像以及关系元数据。文档主要文本位于 word/document.xml 中的 WordprocessingML 标记里;段落样式在 word/styles.xml 中;列表编号在 word/numbering.xml 中;嵌入图像在 word/media/ 中。把任意 `.docx` 重命名为 `.zip` 并解压,就能用任意文本编辑器看到结构。该格式随 Microsoft Office 2007 一起推出,2006 年 12 月作为 ECMA-376 标准化,2008 年作为 ISO/IEC 29500 标准化,至今仍是数亿作者使用的 Word 默认格式。
PDF(Portable Document Format)描述相反的范式:固定布局的页面、确切坐标上的字形、嵌入的字体和绝对定位。DOCX 是基于流的(页面大小、边距或字体变化时文本会重排),PDF 则是像素定位的(每个字符都占据页面坐标系中一个具体的点)。两者之间的转换在结构上就是范式翻译:一个灵活的写作格式变成一个被冻结的渲染格式。无论是 Microsoft Word 自身、LibreOffice 的无界面转换器、Smallpdf 的云端引擎,还是这个浏览器工具,所有转换工具面对的都是同一个内在差距:源描述意图,目标描述外观,而意图必须在转换过程中被锁定为一个具体外观。
不同的转换方法在这个差距前做出不同的取舍。Word 自带的「另存为 PDF」使用与屏幕显示文档相同的渲染引擎,因此转换本质上是「渲染到 PDF 表面而非屏幕表面」;保真度极佳,输出中的文本可被选择。云服务通常使用服务端的 LibreOffice 或专有引擎;保真度高,文本可选,但文件被上传。这个浏览器工具使用一条不同的管线(下一节会描述),它在隐私和覆盖面(任意浏览器、任意设备、无需安装、无需上传)上做了优化,作为代价接受保真度上的损失。这些方法没有谁是普适的最佳;它们各自匹配不同的工作流。
这个工具的内部工作原理
转换完全在你的浏览器里,通过一条三阶段管线运行:mammoth.js 把 DOCX 解析为语义 HTML,html2canvas(由 html2pdf.js 调用)使用浏览器自身的渲染原语把那段 HTML 绘制到一个屏外的 `<canvas>` 元素,jsPDF(同样由 html2pdf.js 调用)把 canvas 包装为 JPEG 图像数据,放到 PDF 页面上,并在所配置的页面大小和边距所暗示的边界处加入分页。输出的 PDF 是一系列整页位图图像,每个源页面对应一张或多张,外加 PDF 元数据头。
这个管线有一个值得开头就坦白讲明的重要后果:输出的 PDF 是基于位图的,不是基于文本的。PDF 主体中可见的字符是图像中的像素,而不是带有嵌入字体数据的文本定位算子。实际上这意味着:在 PDF 中搜索找不到词;从页面主体复制粘贴什么也得不到;屏幕阅读器无法把内容当作文本来读;如果 PDF 被送入下游的文字处理工具,则需要先做 OCR。如果任何一种情形对你重要(法律取证、无障碍提交、用于检索的文档存档、任何会被软件解析的场景),合适的工具是 Microsoft Word 的「文件 → 另存为 PDF」或 LibreOffice 的「文件 → 导出为 PDF」,两者从 DOCX 源生成的都是基于文本的 PDF,文本可选、可搜索、对屏幕阅读器可访问。这个工具的目的是在不上传任何文档的前提下,从一份 Word 文档交付一个视觉上干净的 PDF;位图输出就是这份隐私保证的代价。
你选择 `.docx` 时,浏览器的 File API 把字节交给 mammoth.js。mammoth 把 DOCX 当作一个 OPC 包,提取 word/document.xml,并遍历 WordprocessingML 树:`<w:p>` 变成 `<p>`,`<w:tbl>` 变成 `<table>`,带粗体或斜体的运行变成行内标记,超链接变成 `<a>`,`word/media/` 中嵌入的图像变成行内的 base64 编码的 `<img>` 标签。然后工具把 HTML 渲染到一个隐藏的 DOM 容器内,把选中的页面大小与边距作为 CSS 应用,并以该容器调用 html2pdf。html2pdf 遍历容器,在 CSS 页面边界处把它切成虚拟页面,对每一页大小的片段调用 html2canvas,把所得的 canvas 位图组装成一个 jsPDF 文档。整条管线在初次加载库以后不再发起任何网络请求。
支撑转换的三个库
mammoth.js 是 DOCX 解析器。由 Michael Williamson 在 BSD-2-Clause 许可证下创建并在 GitHub 上以 mwilliamson/mammoth.js 维护。Williamson 自己写的设计哲学是:转换应保留语义内容(段落、标题、列表、表格、脚注、超链接、嵌入图像),而不是直接的视觉格式(特定字体、字号、颜色、间距)。作者认为文档会在不同上下文(Word、Web、ePub、PDF)之间迁移,而适合一种上下文的视觉样式很少同样适合另一种;保留语义结构比保留确切外观更有用。浏览器版的 bundle 约 600 KB 压缩后大小。
jsPDF 是 PDF 写入器。由 James Hall(GitHub:MrRio)于 2010 年创建,现由 yWorks GmbH 共同维护,MIT 许可证,在 GitHub 上位于 parallax/jsPDF。jsPDF 可以从文本、矢量图形、图像和 HTML canvas 写出 PDF;在本工具里它消费 html2canvas 提供的 canvas 位图并将其组装为 PDF 页面。html2canvas,由 Niklas von Hertzen 创建(MIT 许可证),是 HTML 到 canvas 的渲染器,使用每个元素的计算 CSS 把 DOM 节点绘制到 `<canvas>` 上。html2pdf.js 由 Erik Koopmans 编写(MIT 许可证),是粘合剂:编排 html2canvas 和 jsPDF,处理分页,提供干净的配置 API,并把所有这些打包为一个约 350 KB 压缩后大小的单一 bundle。
首次加载的总占用约为 950 KB。两个库在首次访问后被浏览器缓存,所以后续访问从网络角度看是瞬时的。四个项目(mammoth.js、html2canvas、jsPDF、html2pdf.js)都是开源的,使用 MIT 或 BSD 许可证,并已部署在数以万计的生产项目中。这条管线对其所服务的用例,不经过服务端渲染的视觉保真度 DOCX 转 PDF,是成熟的、被充分理解的、经过实战检验的。
DOCX 与 OOXML 标准的简史
- Word .doc(1983 至 2007)。 Microsoft 的二进制 `.doc` 格式,从 Word 1.0 一直被沿用到 Word 2003。专有,绝大部分时间没有公开文档,被竞争对手通过逆向工程支持互操作。
- OOXML 公布(2005 年 11 月)。 Microsoft 发布 Office Open XML 的第一版草案,一种基于 XML、旨在替代二进制 `.doc`、`.xls` 和 `.ppt` 的格式。提交给 Ecma International 进行标准化。
- ECMA-376 第一版(2006 年 12 月)。 Ecma International 把 OOXML 批准为 ECMA-376 第一版:今天 `.docx`、`.xlsx`、`.pptx` 的第一个正式标准。规范厚度超过 6000 页。
- Office 2007 发布(2007 年 1 月)。 Microsoft Office 2007 以 `.docx` 作为默认保存格式正式发布。Office 2003 收到一个免费兼容包,使其能够打开这些新格式。
- ISO/IEC 29500:2008 批准(2008 年 11 月)。 经过一个备受争议的快速通道流程(招致开源社区和 OpenDocument Format(ODF)阵营的强烈批评),ISO 和 IEC 将 OOXML 采纳为 ISO/IEC 29500:2008。规范定义了两种变体:Strict(符合 ISO 的纯净版)和 Transitional(Word 实际默认写出的版本,保留了向后兼容的构造)。
- 今天(2026 年)。 现实中几乎每一个 `.docx` 都是 Transitional OOXML,由 Word、LibreOffice、Google Docs、Apple Pages、WPS Office 或众多 SaaS 文档工具生成。这种格式现在无处不在:从个人作者到企业文档管理系统,文档创作经济每一个层级都把它作为默认值。
驱动 Word 转 PDF 的真实工作流
- 向招聘者和招聘平台投递简历或履历。 每一个主流招聘平台(LinkedIn Recruiter、Indeed、Workday、Greenhouse、政府招聘门户)都期待 PDF。作者在 Word 中起草,发送前转换。隐私之所以重要,是因为简历包含个人联系方式、地址和工作履历。
- 求职信和申请论文。 大学、奖学金项目、政府申请、企业招聘都聚焦于 PDF 作为提交格式。Word 仍是首选的起草工具,因为有语法检查、批注和修订支持;PDF 则是交付格式,因为格式被锁定。
- 签署前的合同和法律文档。 在发送合同草稿前先转换为 PDF,让对方看到的是固定版式的文档。签署之后,签名后的 PDF 成为权威版本。转换必须发生在受信任的设备上,因为文档是机密的。
- 学术论文、学位论文和期刊投稿。 大多数期刊和大学仓库接受 PDF 作为投稿格式。作者在 Word(或 LaTeX)中起草并提交 PDF。对于 LaTeX 用户,本工具用不到;但对人数极多的社会科学、人文、管理和法律领域的 Word 用户来说,这就是标准工作流。
- 内部报告和存档快照。 把一份 Word 报告转为 PDF 用于永久存档。PDF 是正式记录;Word 源可以继续作为草稿演进。许多受监管的行业(金融、医疗、法律)合规存档时要求 PDF。
- 可靠的邮件分发。 PDF 在邮件客户端中渲染一致,`.docx` 做不到。Outlook、Gmail、Apple Mail 和移动邮件应用都能内联打开 PDF;`.docx` 要求收件人安装 Word 或兼容应用。对于发给非技术受众的文档,PDF 是最低摩擦的分发格式。
常见陷阱及其含义
- PDF 中的文本不可选、不可搜索。 这是设计如此,不是 bug。管线把渲染后的 HTML 栅格化,因此 PDF 主体是一张位图图像。PDF 内搜索、复制粘贴和屏幕阅读器对正文的访问都不会奏效。对于文本可选性重要的文档(法律、存档、无障碍、文档数据库),请使用 Microsoft Word 的「文件 → 另存为 PDF」或 LibreOffice 的「文件 → 导出为 PDF」。两者从 DOCX 源生成的都是基于文本的 PDF。
- PDF 中的字体与原始 Word 文档不一致。 mammoth.js 有意把重点放在语义内容上,并不移植直接的字体元数据;浏览器使用本地可用的字体来渲染 HTML。如果你的 Word 文档使用了一个只装在你工作机器上的企业自定义字体,PDF 就会用浏览器的回退字体来渲染。修复办法要么是在做转换的设备上安装相同的字体,要么使用 Word 自带的「另存为 PDF」,它会嵌入文档引用的字体。
- 复杂表格会简化或渲染不完美。 mammoth 对标准表格(行、列、单元格边框)处理得很好。多重合并的单元格、深度嵌套的表格、带有复杂条件格式的表格可能会简化或在视觉上断裂,因为 mammoth 的 HTML 输出是 Word 渲染器所产出内容的一个子集。对于重表格的报告,正确的工具是 Word 自带的 PDF 导出。
- 多栏布局变成单栏。 mammoth 不保留 Word 的 `<w:cols>` 指令。一篇报纸式的两栏文章在生成的 HTML 中变为单栏,进而 PDF 也是单栏。对于真正需要保留输出栏布局的文档,请使用 Word 的「文件 → 另存为 PDF」或 LibreOffice 的无界面模式,两者都在转换中保留栏结构。
- 源中的页眉、页脚和页码会丢失。 mammoth 专注于文档主体,不移植 Word 的页眉、页脚或页码字段。html2pdf 会添加自己的分页,但不能注入原始的 Word 页眉/页脚。对于需要原页眉/页脚的文档,要么经 Word 转换,要么在这里转换之后再用 免费在线PDF页码工具 在下游添加页码。
- 批注与修订标记不会出现。 mammoth 默认把批注和修订标记视为元数据并忽略。生成的 PDF 反映的是所有修订实际上被接受后的文档状态(在忽略修订元素时
word/document.xml的状态)。如果需要在 PDF 中看到批注或标记,请使用 Word 的「文件 → 另存为 PDF」并启用「打印标记」选项,或先在 Word 中接受/拒绝所有修订再来转换。 - 非常大的文档可能让标签页失去响应。 mammoth 与 html2canvas 都把整个文档同步加载到内存中处理。超过 100 页或嵌入大量图像的文档可能耗尽浏览器内存,尤其在 4 GB RAM 或更少的移动设备上。缓解办法是先在 Word 中拆分文档,按段分别转换,然后用 免费在线 PDF 合并 把生成的 PDF 合并回去。
隐私:文档留在你的设备上
每一个主流的云端 Word 转 PDF 服务(Smallpdf、iLovePDF、Adobe Acrobat Online、PDF24、Sejda、Soda PDF)都会把你的文件上传到运营商的服务器,使用 LibreOffice 或专有引擎在服务端解析,渲染 PDF,再作为下载发回。隐私上的影响并不轻,Word 文档常常是个人或敏感的:简历和求职信里有家庭住址、电话和工作履历;求职信和个人陈述里有真诚的自我披露;HR 表单里有薪资预期;合同里有商务条款;医疗记录信件里有受保护的健康信息;法律草案里有律师与客户之间的特权内容。主流服务商发布的隐私政策都承诺在一两小时内删除、传输用 TLS 加密,规模较大的还持有 ISO/IEC 27001 认证并与 GDPR 对齐。他们有强烈的商业动机去履行这些承诺。但「一小时内删除」不等于「从未看过」:在那一小时里,文件内容驻留在他们的基础设施中,任何具备相应权限的进程或人都可访问,并按适用的保留期限出现在日志和备份中。
这个转换器不上传任何东西。mammoth.js 和 html2pdf.js 完全在你的浏览器标签页里运行;文件字节由 File API 读取,在 JavaScript 中处理,PDF 输出以 Blob 形式作为下载返回。你可以通过在点击「转换」之前打开浏览器开发者工具到 Network 标签页来验证没有上传:不会发出任何包含你文件内容的请求。唯一的网络流量是首次访问时一次性从 CDN 加载两个库(总计约 950 KB 压缩后),随后留存在浏览器缓存中。页面加载之后切换到飞行模式,转换器仍然可以处理本地文件。代价正如「工具如何工作」一节所述,是输出 PDF 基于位图:它失去了服务端转换所保留的文本可选性和可搜索性。对于绝大多数个人 Word 转 PDF 流程(简历、求职信、内部备忘、合同草稿、申请表),位图输出完全够用,隐私保证值得这个代价。对于输出需要可选文本的文档,正确的答案是 Word 自带的「另存为 PDF」或 LibreOffice 的「导出为 PDF」,只要文档永远不需要离开本地机器,它们也都可以离线、隐私地完成工作。
什么时候另一个工具才是合适的选择
- 输出的 PDF 需要可选、可搜索的文本。 法律取证、文档存档、无障碍提交,任何会被搜索引擎索引或屏幕阅读器读取的场景:本工具的输出是纯位图,无法胜任。请使用 Microsoft Word 的「文件 → 另存为 PDF」或 LibreOffice 的「文件 → 导出为 PDF」。两者都可离线工作并产生基于文本的 PDF。
- 文档有复杂布局、公式或嵌入对象。 多栏报纸、数学繁多的学术论文、含嵌入式 Excel 图表或 PowerPoint 幻灯片的文档、复杂的多重合并表格:这些情形适合 Word 自带的渲染器或 LibreOffice 的无界面转换。mammoth 的「语义优先」方法会有意丢掉或简化它无法干净表达的内容。
- 需要对多个文件做批量转换。 本工具一次只接受一个文档,渲染管线是单线程的。批量处理的标准 CLI 命令是
soffice --headless --convert-to pdf *.docx --outdir output/,使用 LibreOffice。另外,本工具使用的同款 mammoth 和 html2pdf 库也能在 Node.js 中运行,可用于以相同的保真度做脚本化转换。 - 文档非常大(超过 100 页或包含很多大图)。 mammoth + html2canvas 会把整份文档加载并在内存里处理;大文档可能让浏览器标签页冻结,尤其在移动设备上。要么先在 Word 中拆分、按段分别转换(然后用 免费在线 PDF 合并 合回),要么使用从磁盘流式读取的桌面工具:Word、LibreOffice 或命令行转换器。
功能特性
- 快速转换:即时的 Word → PDF 转换,无需等待。
- 可自定义:选择页面大小(A4 或 Letter)和边距。
- 隐私:所有处理都在您的浏览器本地完成。文件从不发送到服务器。
- 简单:拖放您的 Word 文件并点击转换即可。
- 一次一个文件:一次转换一个 Word 文档以获得最佳效果。
常见问题
支持哪些 Word 格式?
此转换器支持 .docx 文件(Microsoft Word 2007 及更高版本)。不支持较旧的 .doc 文件;您可以先在 Microsoft Word 中将其转换为 .docx,然后再使用此工具。
我的格式会被保留吗?
大部分格式会被保留,包括字体、大小、颜色和基本版式。但复杂的表格、多栏布局和嵌入对象等元素可能在转换时被简化或调整。
我的 Word 文档会发送到服务器吗?
不会。所有转换通过 Mammoth 和 html2pdf 库在您的浏览器本地完成。您的 Word 文件从不离开设备,完全保证隐私和安全。
可以一次转换多个文件吗?
此工具一次转换一个 Word 文件。每次转换时,只需上传一个新 .docx 文件并进行转换即可。
文件大小限制是多少?
支持最大 25 MB 的文件。非常大的文件可能需要更长时间,取决于您浏览器的可用内存。
可以调整边距和页面大小吗?
可以。在转换前,您可以选择页面大小(A4 或 Letter)和边距宽度(正常、窄或宽)。
更多常见问题
为什么 PDF 中的文本不能选中?
本工具产出的是基于位图的 PDF:它先把 Word 文档渲染为 HTML,再用浏览器把 HTML 绘到屏外的 canvas 上,然后把 canvas 作为图像嵌入 PDF。因此输出 PDF 里装的是页面的图片,而不是带有位置的字符。从页面主体复制粘贴什么也得不到,PDF 内搜索找不到词。如果需要可选文本(法律取证、研究数据库、无障碍),请使用 Microsoft Word 的「文件 → 另存为 PDF」或 LibreOffice 的「文件 → 导出为 PDF」;两者从 DOCX 源生成的都是基于文本的 PDF。
为什么字体和我原来的 Word 文档不一样?
本工具用 mammoth.js 解析 DOCX,它有意聚焦于语义内容(段落、标题、列表、表格),而非直接的视觉格式(具体字体、确切字号、颜色)。浏览器使用你本机已安装的字体来渲染生成的 HTML。如果你的 Word 文档使用了一种只装在你工作机上的公司或品牌字体,PDF 就会用浏览器的回退字体(通常是某种通用无衬线字体)来显示。要保留字体,要么在设备上安装同样的字体,要么使用 Word 自带的「另存为 PDF」,它会把文档引用的字体嵌入。
本工具能离线使用吗?
首次访问之后可以。两个库(mammoth 约 600 KB、html2pdf 约 350 KB)会从 CDN 加载一次,之后被浏览器缓存。后续访问转换器在没有网络连接时也能工作,只要浏览器缓存没被清空。转换本身从来不需要网络;只有最初加载库需要。你可以在首次打开页面后开启飞行模式,再尝试转换一个本地 DOCX 来验证。
我能转换老的 .doc 文件(Word 97-2003)吗?
不行。本工具只接受 .docx(Office Open XML),即 Word 2007 引入的格式。老的二进制 .doc 格式需要不同的解析器(mammoth 只处理基于 XML 的 .docx)。如要转换 .doc 文件,请先在 Word 或 LibreOffice 中打开,另存为 .docx,然后再来这里转换。.doc 到 .docx 的转换在两款工具中都是一键完成且保留内容。
结果 PDF 中的超链接可以点击吗?
源文档中的超链接在 PDF 中以视觉上加样式的文本出现(蓝色、下划线),但不是可交互的:因为 PDF 主体是渲染后 HTML 的位图,PDF 阅读器中点击链接文本不会跳转到任何地方。如果需要在输出 PDF 中保留可点击链接,请使用 Word 的「文件 → 另存为 PDF」(它会保留 PDF 链接注释)或 LibreOffice 的「导出为 PDF」。两者产生的 PDF 在转换后超链接仍可工作。
有桌面或命令行的等价方案吗?
有,多种。标准的服务端/命令行方案是 LibreOffice 的无界面模式:soffice --headless --convert-to pdf input.docx --outdir output/ 原地完成转换,适合批量,无需 GUI。LibreOffice 可装在 Linux、macOS 和 Windows 上;同一条命令行在哪都能用。需要在程序里得到与 Word 像素一致的输出时,Windows 上 Microsoft Word + PowerShell COM 自动化是金标准(需要安装 Word)。本工具使用的同款 mammoth.js 与 html2pdf.js 库也能在 Node.js 中运行,可用于以相同的保真度做脚本化、无浏览器的转换。Pandoc 搭配 LaTeX 引擎是另一个选择,适合学术出版工作流。