很多人都会遇到这种情况:
屏幕上看着一切正常,
一到打印或者导出 PDF,就开始“变样”:
字体变了
字号忽大忽小
图标直接变方框
第一反应通常是:是不是出 bug 了?
其实不是。
打印,本来就不是把屏幕“原样复制”一份。
它更像是:
把网页“重新排版”成一张纸
而问题,基本都出在这一步。
1. 为什么字体会变?
你以为你选了某个字体,打印也会用它。
但实际情况是:
打印时,系统不一定能用你这个字体
可能是因为:
用户电脑里没有这个字体
或者这个字体不允许被用在打印文件里
所以系统只能“找个差不多的替代”。
这就是为什么——
看着一样,打印出来就变了
怎么避免?
最简单的理解就是:
不要指望别人电脑有这个字体
开发里通常会“自带字体”,
这样打印时就不会乱换。
2. 为什么字号会变?
你在页面上写的是:
16px
但打印出来可能变大或变小。
原因其实很好理解:
屏幕是“像素”(看设备)
纸张是“真实尺寸”(看物理大小)
两套完全不同的标准
浏览器在中间帮你“换算”,
但这个换算并不稳定。
所以结果就是:
有时候偏大
有时候偏小
怎么避免?
打印时,用“真实尺寸单位”(比如 pt、mm)
就不会乱。
3. 为什么图标会变成方框?
这个也很常见:
按钮上的小图标,打印出来变成 □ 或直接没了。
原因可以简单理解为:
系统不知道这个图标长什么样
因为很多图标,其实是“用字体伪装出来的”。
一旦字体没带上:
系统找不到图形
也没有备用
就只能显示一个“占位符”(方框)
怎么避免?
有三个办法:
用图片或 SVG(最稳)
打印时直接换成文字
用系统自带符号(比如 ✓ ⚠️)
最后总结一句话
为什么打印总是“翻车”?
因为你看到的是“屏幕效果”,打印用的是“纸张规则”
它们从一开始就不是一套东西。返回搜狐,查看更多