页面用的是思源黑体,屏幕上正常,打印预览正文变成宋体,字号看着也小了一号,英文却还是原来的无衬线。乍看像缓存或者权限的锅,追下去往往不是。
@media print {
body { font-family: 'Microsoft YaHei', 'PingFang SC', sans-serif; }
p { font-size: 10.5pt; line-height: 1.7; }
}
追下去是这么回事:打印时浏览器只认本机已安装的字体,webfont 在部分浏览器打印流程里不参与排版。字体栈里只写了拉丁字体,中文就落到系统默认的宋体上。
「打印字体回退」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
具体做法是,在打印样式里显式写中文黑体字体栈 把微软雅黑和苹方放在前面;正文统一用 pt 定字号 避免打印缩放后偏小;打印预览里对比中英文粗细 两者差太多就换回系统黑体。
验收就看一点,打印预览里中文和英文都是黑体,正文大小与屏幕观感接近。
