首页 / 资讯中心 / 文章详情

同一份 PDF,在你机器上和在 HR 机器上不是一个样子

同一份 PDF,在你机器上和在 HR 机器上不是一个样子 ★ FEATURED ARTICLE
一个很常见的场景简历在本机 Word 或 WPS 里排得整整齐齐导出 PDF 自己看也没问题发出去之后对方截图回来字体全变了一页变成一页半。这不是玄学是 PDF 的字体机制决定的。搞清楚之后规避方法也就一行操作的事。PDF 里的字体有三种存在方式第一种只引用不嵌入。PDF 里只记了一个字体名比如SimSun和字符编码字形数据不在文件里。打开的时候阅读器去本机字体库找同名字体找不到就按替换规则挑一个「差不多的」。替换发生的时候字宽变了行的折断位置跟着变原本刚好一页的内容可能溢出到第二页。中文字体的替换尤其明显因为中文字体的字面大小em box 里字形的实际占比差异比西文大得多。第二种完整嵌入。整个字体文件塞进 PDF。显示百分百一致代价是文件大一个中文字体动辄几 MB 到十几 MB嵌两个就超了不少网申系统 2M 或 5M 的附件上限。第三种子集嵌入subset。只把文档里实际用到的那些字形抽出来嵌进去。这是绝大多数现代导出器的默认行为也是最优解显示一致体积可控。子集嵌入的字体在 PDF 里的名字前面通常挂着一个六位大写前缀形如ABCDEFSimSun。怎么看自己的 PDF 属于哪种不用装东西PDF 阅读器里「文档属性 → 字体」那一栏就能看。逐个字体看后面标没标「已嵌入」或「Embedded Subset」。装了 poppler 的话一行命令更清楚pdffonts resume.pdf输出大致长这样name type emb sub uni ------------------------ ------------ --- --- --- ABCDEFSimSun CID TrueType yes yes yes Arial TrueType no no yesemb那一列是关键。yes表示嵌进去了换台机器打开还是这个字形no表示只留了个名字到别人机器上就看运气。上面这个例子里中文的宋体嵌好了但 Arial 没嵌如果对方机器上没有 ArialLinux 环境常见英文和数字部分就会被替换。简历里的时间、电话、邮箱、技能名大量是英文数字这一替换整份的观感就散了。导出时怎么保证嵌入WordWindows文件 → 选项 → 保存 → 勾「将字体嵌入文件」同时勾「仅嵌入文档中使用的字符」这就是子集化能大幅压体积。WordmacOS/ WPS导出为 PDF 时在选项里找「嵌入字体」类的开关。打印成 PDF走系统虚拟打印机Microsoft Print to PDF、macOS 的「另存为 PDF」通常会嵌入但有些驱动会把中文转成位图导致文本层丢失这就退化成第 1 篇讲的「提取不出文字」的问题了导出后要回头验一次。LaTeXpdflatex/xelatex默认嵌入一般不用管。浏览器打印成 PDF现代浏览器默认子集嵌入是比较稳的一条路。用的是什么字体也很重要即便嵌入了也建议只用常见字体中文用宋体、黑体、思源黑体/思源宋体这类西文用 Arial、Helvetica、Times New Roman、Calibri。理由有两个。一是万一嵌入失败有些字体有嵌入权限位商业字体可能禁止嵌入常见字体的替换结果最接近原样。二是部分在线预览器邮箱附件预览、聊天软件预览、招聘系统的内嵌预览会重新渲染不一定用你嵌的那份这时候常见字体才有兜底。顺带说一句字体是有授权的。商业字体用于个人简历一般没问题但如果你在做的是要分发的模板或产品得看清授权范围。验证换个环境打开一次最省事的验证不是看参数是换一个环境实际打开用手机微信发给自己点开预览手机预览是转码渲染最容易暴露替换问题传到网页版邮箱用邮箱的在线预览打开有 Linux 机器的话用evince或者浏览器打开一次Linux 上装的中文字体最少最容易复现替换三个环境都对基本就稳了。还有一类问题不是字体导致的如果对方那边打开是乱码不是字体变了是根本读不出字多半是编码或者转换环节的问题常见于把 PDF 直接改扩展名成.doc发出去。这个做法不管用Word 打开会按二进制解读出来一屏乱码。需要可编辑版本的时候得做真正的格式转换用 Word 自带的「打开 PDF」或者专门的 PDF 转 Word 工具转完自己先打开核一遍排版再发。最后PDF 这个格式的设计目标就是「到哪里都一样」但这个承诺只在字体嵌入的前提下成立。导出时多勾一个选项发出去之前换个环境打开一次加起来两分钟。省下的是对方看到一份莫名其妙排版的简历。
阅读完成 · 觉得有帮助?
咨询建站