文档发给别人,字体却换了一套,问题不在 Word,而在字体数据根本没进文档:文件里只记了"这段该用哪个字体",字形数据还躺在你自己的系统字体目录里。本文按 Office 嵌入、PDF 嵌入、Web 字体三条路径,讲清各自的开启位置、能嵌哪些字体、嵌入后对方还能不能编辑,以及许可上的硬边界。
信息核验时点:2026-10-28(Office 以 Microsoft 365 版当前支持页面为准;LibreOffice 最新稳定版 26.8.1,发布于 2026-10-08;WOFF2 于 2018-03-01 成为 W3C 推荐标准,现行文档为 2024-08-08 版;ISO 19005-4:2020 即 PDF/A-4 于 2020 年 11 月批准)
本文要点
- 一句话定义:字体嵌入(Font Embedding)是把字体数据随文档一起打包进行为,微软的 Windows GDI 文档把它定义为"把一份文档和它用到的字体捆进同一个文件,传给另一台电脑"
- 核心结论:Office 嵌入保住"可编辑",PDF 嵌入保住"版式定稿",Web 字体(WOFF2)保住"网页谁打开都一样"——三条路解决同一类问题,但互不替代
- 能不能嵌、嵌了能不能改,写在字体文件里:OpenType 规范用 OS/2 表的 fsType 字段声明,常见取值 0(可安装)、2(受限许可)、4(预览与打印)、8(可编辑),取值 4 的文档必须以只读方式打开
- 体积压力主要是中文:只有 TrueType 和 OpenType 字体可以嵌入;本机 6 款常用中文字体单文件 9 到 19 MB,西文字体不到 1.2 MB
- 短板/边界:文档嵌入授权不等于内置授权——把字体放进自研软件、小程序或设备,按微软的字体分发 FAQ 明确不允许,转成位图字体也不行
为什么文档发出去字体就变了?
字体(Font)是一组字形数据的集合,装在操作系统或应用的字体库里。你在 Word 里把正文设成"思源宋体",文档本身只记录了"这段文字应该用思源宋体显示"这条指令,不含任何字形数据。对方电脑没装这个字体时,应用只能拿别的字体顶上,字号、字宽、行距跟着变,排版就乱了。这件事在 WPS 与 Office 之间也一样成立,WPS 与 Office 格式兼容性 里专门讲过"文档只记住字体名、不记住字体本身"这一点,以及怎么先扫一遍文档到底用了哪些字体。
替换并不是"换个差不多的字体"这么简单。Adobe Distiller 的中文文档写得很直白:当字体因供应商的设置无法嵌入时,Distiller 会暂时替换为 Multiple Master 字体(缺失的衬线字体用 AdobeSerifMM、无衬线用 AdobeSansMM),替换字体可以拉伸或压缩以适应,以保持原始文档的行与页面分隔;但"替换并不总能匹配原始字符的形状,尤其是对于非常规字体(如手写体)"。亚洲文本走的是另一条路——使用已安装的亚洲语言工具包字体或系统上类似的字体,而"某些语言的字体或具有未知编码的字体无法替换。在这种情况下,文件中的文本将显示为项目符号"。这就是有人打开你的文档满屏小黑方块的全部来历。
解决方案的思路也只有一条:把字体数据放进文档,让它跟文档一起走。
Word 和 PowerPoint 在哪里开启字体嵌入?
微软官方页面给的路径是:点"文件"选项卡,再点"选项"(窗口左下角),在左栏选"保存",拉到页面底部,在"共享此演示文稿时保持保真度"这一区域下勾选 Embed fonts in the file(Microsoft 支持页面)。中文界面一般译作"在文件中嵌入字体",但这次我只在官方英文页面上核到了字面,中文版请以你界面上"保存"页底部的那个勾选项为准。
勾选后出现两个子选项,官方字面如下:
| 勾选项(官方英文界面字面) | 官方说明的作用 | Word | PowerPoint |
|---|---|---|---|
| Embed only the characters used in the presentation | 减小文件体积,但会限制对方继续用同一字体编辑文档 | 有 | 有 |
| Do not embed common system fonts | 跳过系统常见字体,避免重复打包 | 有 | 字面略有不同 |
| Embed all characters (best for editing by other people) | 供他人编辑时选择 | 官方页面未列 | 有 |
这里有个容易踩的细节:微软在同一页里对 Word 侧第二个勾选项的描述是"勾选后可能增大文件体积,但最适合让他人编辑文档并保留同一字体",字面上读起来是自相矛盾的。稳妥的理解方式是把它当成"要让对方改,就少做取舍"——需要他人编辑就别勾"仅嵌入使用的字符",只需对方阅读则可以勾。
WPS 的入口不同:文件 → 选项 → 常规与保存 → 勾选"将字体嵌入文件"(WPS 官方学堂问答)。LibreOffice 的入口是 File → 属性 → "Font" 选项卡,勾选 "Embed fonts in the document",另有 "Only embed fonts that are used in the document"(LibreOffice 帮助)——值得注意的是,即便打开的是中文界面,这一页上的勾选项也仍显示英文,说明它的本地化还没覆盖到该字段。
还有一条常被忽略的边界:微软"嵌入自定义字体的好处"这一页的适用范围只写了 Word 和 PowerPoint,没有 Excel。Excel 里"嵌入字体"这件事并没有对应的官方说明。
哪些字体允许嵌入,嵌入后对方还能编辑吗?
第一道门槛是格式。Windows 的 GDI 文档写得很干脆:"Only TrueType and OpenType fonts can be embedded."(Microsoft Learn)Adobe PostScript Type 1 不在这个范围内。
第二道门槛才是许可。字体文件内部的 OS/2 表有一个 fsType 字段(uint16),位 0 到 3 互斥,合法取值 0、2、4、8,另有位 8 "No subsetting"(置位则嵌入前不得做子集化)和位 9 "Bitmap embedding only"(置位则只能嵌入位图,无位图时视为不可嵌入)(OpenType 规范 OS/2 表):
| fsType 取值 | 名称 | 规范原文要点 | 对方拿到文档后 |
|---|---|---|---|
| 0 | Installable embedding | 可嵌入,并可永久安装供远程系统使用 | 能看能改,字体还能装进系统 |
| 2 | Restricted License embedding | 未经法律所有者明确许可,不得修改、嵌入或交换 | 嵌不进去 |
| 4 | Preview & Print embedding | 可嵌入、可临时加载用于查看或打印;含此类字体的文档必须以只读方式打开 | 只能看和打印,不能改 |
| 8 | Editable embedding | 可嵌入、可临时加载;除阅读外允许编辑,包括用嵌入字体为新文字排版,且改动可保存 | 能看能改,但不能把字体安装出文档之外 |
微软的字体分发 FAQ 补了三条实践经验:Microsoft 自带字体最常见的设置就是 "editable embedding";微软代理销售的第三方字体最常见的是 "print and preview embedding",此时"文档必须锁定编辑";一个文档里同时混嵌了 print-and-preview 和 editable 两档字体时,规范要求整份文档都被锁死编辑,不是"能改哪段改哪段"(Font redistribution FAQ)。
本次我在自己的 Windows 机器上逐字节解析了 C:\Windows\Fonts 里的字体文件,读它们的 OS/2 表,结果是这样:
| 字体文件 | 名称 | fsType | OS/2 版本 | 文件大小 |
|---|---|---|---|---|
| simsun.ttc | 宋体 | 8(可编辑) | 3 | 17.23 MB |
| msyh.ttc | 微软雅黑 | 8(可编辑) | 3 | 18.79 MB |
| simhei.ttf | 黑体 | 8(可编辑) | 3 | 9.30 MB |
| simfang.ttf | 仿宋 | 8(可编辑) | 3 | 10.09 MB |
| simkai.ttf | 楷体 | 8(可编辑) | 3 | 11.24 MB |
| Deng.ttf | 等线 | 8(可编辑) | 3 | 15.57 MB |
| arial.ttf | Arial | 8(可编辑) | 3 | 0.99 MB |
| times.ttf | Times New Roman | 8(可编辑) | 3 | 1.14 MB |
这十来个样本全是 8,也就是说 Windows 自带的常用中文字体本身都允许"嵌入且可编辑"。它们的问题不在许可,在体积:同一档授权下,西文字体不到 1.2 MB,中文字体动辄 9 到 19 MB——因为一个中文字体要装下几万个字形。微软官方对嵌入的体积代价只有一句"会增加文件大小",没给数字;这张表就是那个数字的量级来源。
PDF 是怎么把字体固定住的?
PDF 的设计目标之一就是换台机器打开外观不变,字体嵌入是它实现这一点的关键机制。Adobe Distiller 的中文页面对过程的表述是:字体嵌入是将字体数据包含在 PDF 文件中的过程,且"只有某字体包含字体供应商允许嵌入该字体的设置时,才能嵌入该字体";嵌入选项包括"嵌入整个字体"和"嵌入仅包含文件中使用的字符的子集"两种,并且明确"嵌入字体会略微增加文件大小,除非文档使用 CID 字体(通常用于亚洲语言)"——这句"除非"值得所有排中文的人注意(Adobe 帮助)。
从 Office 直接另存 PDF 时,微软给了两个跟字体直接相关的官方选项(Microsoft 支持):
- 符合 ISO 19005-1 标准 (PDF/A)——官方说明"此选项将 PDF 文档输出为版本 1.7 PDF,这是一种存档标准。PDF/A 有助于确保文档稍后在另一台计算机上打开时,其外观是相同的。"
- 未嵌入字体时的位图文本——官方说明"如果字体无法嵌入到文档中,PDF 将使用文本的位图图像,以便 PDF 看起来与原始文档相同。如果未选择此选项且文件使用无法嵌入的字体,则 PDF 阅读器可能会替换为其他字体。"这一项解释了为什么有些 PDF 看着完全正常、文字却选不中复制不了。
同一页面还有那句有用的取舍提示:"如果文件大小比打印质量更重要,请选择(最小大小)(联机发布)"。
PDF/A 这一族标准的字体要求是硬的。美国国会图书馆的数字格式登记页(该页描述的是 PDF/A-4,即 ISO 19005-4:2020,2020 年 11 月批准、基于 PDF 2.0)引用了规范条款原文:PDF/A-4 的 6.2.10.4 小节要求"The font programs for all fonts used for rendering within a conforming file shall be embedded within that file",即所有用于渲染的字体都必须嵌入;并且 PDF/A-4 要求所有字体都要有 Unicode 映射,连扫描件的 OCR 文字也不例外。同页给出了这一族的谱系:ISO 19005-1:2005 基于 PDF 1.4,ISO 19005-2:2011 与 ISO 19005-3:2011 基于 ISO 32000-1,PDF/A-3 的卖点是能嵌入任意格式的附件文件(美国国会图书馆)。要交给档案馆、期刊或招投标平台之前,先确认对方要求哪一档,WPS 的 PDF 全流程 里把导出、签章和合并拆得更细。
检查一份 PDF 到底嵌没嵌字体,Adobe 给的官方路径是:在 Acrobat 中从"菜单"(Windows) 或"文件"(macOS) 选择"文档属性",在对话框里切到"字体"选项卡,这里列出文档用到的每个字体及其嵌入状态。同一页面还有一句排查顺序上的提示:"如果无法在 PDF 中复制和粘贴文本,请首先检查是否嵌入了问题字体"。
网页字体怎么做到谁打开都一样?
网页面对的是同一个问题,解法是让浏览器在渲染时自己去下载字体文件,靠的是 CSS 的 @font-face 规则。src 是一个按优先级排列、逗号分隔的列表,浏览器使用它第一个能成功解析的来源,format() 就是用来声明这个来源是什么格式的:
@font-face {
font-family: "MyWebFont";
src: url("fonts/myfont.woff2") format("woff2"),
url("fonts/myfont.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}格式上认准 WOFF2。MDN 的原话是"For web delivery, it's generally best to serve fonts in WOFF2 format"(MDN @font-face)。WOFF2 在 2018 年 3 月 1 日成为 W3C 推荐标准,现行文档是 2024 年 8 月 8 日版,规范正文写明"用于压缩字体数据流和扩展元数据块的压缩算法是 Brotli"(W3C WOFF File Format 2.0)。
至于到底能省多少,网上流传的"减 30% 到 50%"找不到权威出处。有出处的是 W3C 的《WOFF 2.0 Evaluation Report》:同一批字体从 WOFF 转成 WOFF2,Google 字库的中位降幅是 23.94%,Adobe 字库是 26.79%,样本里最小 6.61%、最大 70.82%(W3C 评估报告)。中位数在四分之一左右,这才是可引用的数。
font-display 决定字体下载期间页面显示什么,浏览器 CSS Fonts 4 规范给了各档的阻塞期:block 是 3 秒不可见阻塞期加无限替换期;swap 是最多 100 毫秒阻塞期加无限替换期;fallback 是 100 毫秒阻塞期加一段很短的替换期;optional 是极短阻塞期且不做替换;auto 交给浏览器自己定(MDN font-display)。所以"字体加载时文字先看不见后跳一下"来自阻塞期内的隐形备用字体,把 swap 用起来就能把这段空白压到 100 毫秒以内。
中文字体的体积压力在网页上最狠,而 Google 的做法是按 unicode-range 切片。本次实测(2026-10-28)请求 Noto Sans SC 400 这一档,接口返回了 101 个 @font-face 分片,单个分片 1,412 到 41,288 字节,整套合计 2,410,448 字节;而这款字体的完整 TTF 是 10,540,644 字节。浏览器只会去取页面真正用到的那几片,这就是"中文网页也能只下几十 KB 字体"的实现方式——收益来自分片与子集,不来自格式转换本身。
三种方案应该怎么选?
| 方案 | 交付形态 | 接收方能否编辑 | 版式一致性 | 体积压力 |
|---|---|---|---|---|
| Office 字体嵌入 | .docx / .pptx | 取决于 fsType(8 可改,4 只读) | 中,取决于对方用的应用是否遵守许可标记 | 中文字体整体嵌入时最大 |
| PDF 字体嵌入 | 否(按定稿交付) | 高,PDF/A 更强制 | 中文字体(CID)嵌入增量明显 | |
| Web 字体 WOFF2 | 网页 | 不适用 | 取决于浏览器是否支持该格式 | 靠 unicode-range 分片压下来 |
发的是定稿——合同、简历、通知、终版报告,对方只看不动:另存为 PDF。若这台机器或这个平台将来还要检索文字内容,就别勾"未嵌入字体时的位图文本",那是拿可复制性换外观。
发的是可编辑文档——要对方改内容、批注、协作:在 Word/PowerPoint 的"保存"页开启嵌入,并且不要勾"仅嵌入使用的字符",因为它省了体积却限制了同一字体的编辑能力。
做网页或线上展示:WOFF2 + format("woff2") 声明 + font-display: swap,中文字体务必按 unicode-range 切片,否则首屏会被字体下载拖住。
中文文档还会多踩哪几个坑?
坑一:公文要求的字体本机根本没预装。 GB/T 9704—2012 规定公文标题一般用 2 号小标宋体字、主送机关等正文一般用 3 号仿宋体字,公文格式标准 和常用公文字体清单 里把字号换算和下载来源讲全了。而我在本机 C:\Windows\Fonts 只找到 simfang.ttf(仿宋),既没有"仿宋_GB2312"也没有"方正小标宋简体"。这种情况下换机显示不一致的原因不是嵌入没做好,是字体本来就不在。信创机器同理:统信 UOS 的官方 FAQ 也说明文档缺少某些字体时需要自行安装指定字体,系统支持 .ttf/.ttc/.otf,添加完建议重启生效。
坑二:文档嵌入授权 ≠ 内置使用授权。 微软 FAQ 对"能否按文档嵌入权限把字体嵌进我在开发的游戏、应用或设备里"回答是明确的 No——document font embedding 只管文档,不管应用;把字体转成位图字体也不行,因为格式转换本身就不被允许。用字体做出来的 GIF/PNG/JPEG 图形(比如 logo、横幅)可以用,前提是你用的产品不是专门授权作家庭、学生或非商业用途的版本。国内厂商的口径更细:方正把使用方式分成"内部使用""内置使用(以嵌入的方式应用到网站、计算机程序或电子产品)""发布使用",并写明任何使用方式都必须事先取得著作权人授权,未授权使用有侵权风险;汉仪同样要求商业使用授权事先取得书面许可,嵌入式使用授权指捆绑打包分发给用户。常用公文字体清单 已按字体逐个整理过商用授权口径。
坑三:批量转换不改字体。 如果这批文档是 .doc 老格式要统一转成 .docx,转换本身不会替你补齐缺失字体,先扫字体、再转格式的顺序在.doc 批量转 .docx 里写过。
常见问题
嵌入字体后 Word 文件变得很大怎么办?
先看这份文档用的中文字体到底多大:本机宋体 17.23 MB、微软雅黑 18.79 MB、等线 15.57 MB,整体嵌入就是照着这个量级往上加。官方只承诺"勾选仅嵌入使用的字符能减小文件体积",代价是对方很难继续用同一字体编辑。所以判断标准是接收方的动作:只读就勾子集,或者干脆转成 PDF;要改就全量嵌入,别指望体积不变。
对方收到嵌了字体的 PPT,为什么还是不能编辑?
因为许可档位不同。fsType=4(Preview & Print)的字体可以嵌入,但规范原文要求"含此类字体的文档必须以只读方式打开,不得对文档施加编辑";微软 FAQ 也说这类字体下"文档必须锁定编辑",而且一旦和可编辑档字体混嵌,整份文档都会被锁。这不是对方 Office 版本低,是字体授权本来就这样。
字体不允许嵌入,还有什么办法保住版式?
两条。一是换字体,用允许嵌入的字体(比如上面表格里那些自带"可编辑嵌入"的系统字体);二是用微软"另存为 PDF"里的"未嵌入字体时的位图文本",官方说法是把文字转成位图图像以保证看起来一致,代价是这些文字无法再被选中和复制。不要想着把字体转成位图字体绕过限制——微软 FAQ 明确格式转换本身就不被允许。
怎么检查一个 PDF 里字体有没有正确嵌入?
在 Acrobat 里打开 PDF,从"菜单"(Windows) 或"文件"(macOS) 进入"文档属性",切到"字体"选项卡,能看到文档用到的每个字体及其嵌入状态。如果目标是要长期保存或提交给机构,还要确认对方要的是哪一档 PDF/A:PDF/A-4 要求所有用于渲染的字体都嵌入、所有字体都有 Unicode 映射。
下一步行动:现在就去"文件 > 选项 > 保存"确认那个勾选项的状态,再决定要不要勾"仅嵌入使用的字符";只发定稿的直接转 PDF,需要长期存档的先查对方要求的 PDF/A 档位;做网页的话把字体换成 WOFF2 并按 unicode-range 切片。
本文界面字面与规则核验于 2026-10-28,以 Microsoft 支持页面与 Microsoft Learn、Adobe 官方帮助、W3C 规范、美国国会图书馆数字格式登记页及本机字体文件实测为准。