为什么导出的 PDF 中出现字体叠影

本质原因

文本正文区域、预览区域(Webview)、浏览器预览、PDF 本质都是不同的载体和渲染引擎。

当文字处于加粗、Header(标题) 状态(也是另外一种加粗),在 PDF 中如果没有对应的(加粗)字重,其最终表现可能会出现 叠影

表象原因

原因: 当前的字体在 PDF 中粗体的表现可能就是如此会叠影,比如微软雅黑。
常见吗? 如果是 Mac 系统内置的常见字体(一般都有常规&粗体两种以上字重),出问题的比较少。

解决方案

1,使用大概率不会出问题的字体,比如冬青黑体、黑体、Hiragino 系、Helvetica 系,其字重本身包含粗体;
2,或者使用 MarkEditor 设置项中默认的字体;
3,或者在菜单 “导出 --> 临时开关 --> (勾选) PDF(HTML)导出时强制使用日间主题” 以避免 Editor 中特定的字体,在 PDF 生成中起作用。

仍然存在问题?

请在上述解决方法中,选第一种,在偏好设置 中指定一个相对常规的字体。
或者在根目录设置中,模板 -> 嵌入 CSS 中指定 body, div, p, span, li {font-family: sans-serif !important}
简而言之,就是避免没有粗体字重的字体出现在最终的页面中。

你也可以在导出 PDF 后,Shift+Command+C,打开配置目录,找到 webpage_for_pdf.html,在 Safari 中打开,再导出为 PDF 或者 打印 的过程中在 Preview 中以 PDF 预览;会发现同样的问题存在。
我们可以简单归结于 Mac 系统自身 Webview 打印过程中的 bug,目前还没有好的解决办法可以绕过系统本身。

2018-08-10 00:35
Comments
Write a Comment