本文目录
Advertisement
SVG 转 PDF 后字体变了,通常不是“转换分辨率不够”,而是字体资源没有跟着 SVG 一起进入输出流程。SVG 中的 font-family 往往只记录字体名称,真正的字体文件仍在电脑、网站 CDN 或设计工具里。浏览器能找到字体时预览正常,换一台设备或进入 PDF 生成器后就可能被替换。
中文、日文和品牌字体更容易暴露这个问题,因为基础 PDF 字体覆盖范围有限,直接写入可能缺字。
先分清四种现象
| 现象 | 常见原因 |
|---|---|
| 字体样式变了 | 指定字体不可用,回退到系统字体 |
| 文字位置错了 | 替代字体字宽不同,换行和基线随之变化 |
| 出现方框或空白 | PDF 字体不包含对应字符 |
| 文字看起来正常但不能选中 | 页面已按图片方式写入 PDF |
最后一种不一定是错误。为了避免中文乱码,转换器可能主动选择图片 PDF,用浏览器已经渲染好的画面换取显示稳定。
为什么同一份SVG在自己电脑上正常
下面这段代码并没有携带字体:
<text font-family="My Brand Sans" font-size="28">新品发布</text>如果你的电脑安装了 My Brand Sans,浏览器会直接调用;别人没有安装时,只能使用后备字体。即使 SVG 写了 @font-face,远程字体仍可能因为跨域、权限、链接失效或网络环境加载失败。
排查时可以打开浏览器开发者工具:
- 在 Network 中筛选 Font,查看是否有 404、403 或 CORS 错误。
- 在元素样式中确认最终实际使用的是哪一种字体。
- 用无痕窗口或另一台没有安装设计字体的设备重新打开。
- 对比文字宽度、换行、基线和字重。
如果 SVG 预览阶段已经替换字体,后面的 PDF 设置无法把原字体“找回来”。
中文内容为什么经常输出为图片PDF
将中文作为真正的 PDF 文本写入,需要字体文件、字符映射和嵌入支持,还要满足字体授权。只使用 Helvetica、Times 等基础字体无法覆盖中文字符。
SVG2IMG 检测到非 ASCII 文字或自定义字体后,会让浏览器完成排版,再把结果以图片写入 PDF。目标分辨率为 300 DPI;页面很大时,为控制浏览器内存,最长边受 4096 像素限制,有效 DPI 会相应下降。
图片 PDF 的特点:
- 能保留浏览器实际显示的中文和日文
- 文字不能搜索、复制或逐字选择
- 阅读器无法把文字当作正常文本提供无障碍访问
- 放大后的精细度取决于像素数量
三种处理方法怎么选
方法一:关键文字转曲
适合 Logo、包装标题、海报主标题、短标签。转曲后每个字变成路径,不再依赖字体,且可以保留矢量边缘。
不适合长正文,因为路径数量会迅速增加,也失去文本编辑能力。建议保留一份未转曲的设计源文件。
方法二:使用标准字体
英文技术图、流程图、简单标注可以选常见的 Helvetica、Arial、Times、Courier 或通用 sans-serif。这能降低替换风险,但仍要实际检查输出,字体名称本身不等于已经嵌入。
方法三:接受图片PDF
如果任务是“让客户看到和预览一致的版面”,图片 PDF 往往最稳妥,特别适合中文图表、单页说明、审批稿和带滤镜的视觉设计。
如果任务要求复制文字、全文搜索、屏幕阅读器或长期文档归档,就不应把整页正文做成图片。此时应在专业排版软件中正确嵌入字体并生成 PDF。
不要用错误方法补救
把页面尺寸放大不会解决缺字。提高像素数只能让已经成功渲染的文字更清楚,无法加载的字体仍然不存在。
直接把文件名从 .svg 改成 .pdf 也没有意义。字体嵌入需要真实字体文件、许可和 PDF 库支持,不是改扩展名可以完成的。
在线下载一个同名字体也存在风险:可能版本不同、字重不全,甚至没有文档嵌入许可。品牌项目应从设计规范或正版字体包确认来源。
下载前检查清单
- 预览中的字体、字重和换行是否与设计稿一致
- 短小关键文字是否已经转曲
- 中文正文是否允许变成不可搜索的图片
- 小字号在 100% 显示时是否清楚
- 在另一台设备上打开 PDF 是否一致
- 字体许可是否允许交付、嵌入或转曲
- 是否保留了可编辑的 SVG 和原始字体资料
可以在 SVG转PDF工具 中分别比较自动模式和“保持外观”模式。若最终只是网页插图或 PPT 图片,使用 SVG转PNG工具 会让文件用途更明确。