打印网站时出现乱码文字

时间:2015-02-26 17:29:02

标签: css printing fonts

我正在一个网站上工作,用户将频繁地从网站打印页面,以便将其提供给没有互联网访问权限的人。在我们用户的办公室打印机上打印时,有些文字会出现乱码:

Garbled text on printout

应该说降低票价和免费乘车计划,芝加哥交通管理局

我的第一个想法是,这与我们使用的字体有关,因此我将该文本更改为font-family: 'Times New Roman', serif。一些谷歌研究让我觉得这些字体设置得到广泛支持,不应该引起问题,但我们的用户仍然存在这个问题。

即使您不确切知道如何解决此问题,我也会感谢有关

的建议
  1. 字体选择可能导致什么?
  2. 如果你认为它与字体有关,那么什么是好的字体?或者我怎么能弄明白,是打印机特定的吗?
  3. 更新

    正在从浏览器打印该页面,该特定用户组是IE8。我不确定他们在哪个版本的Windows上。我在办公室使用IE8的Windows机器上测试了这个,但是无法重现这个问题。因此,虽然浏览器可能是一个因素,但我不认为这是唯一的因素。

    第二次更新

    我们使用的字体是Libre Baskerville,我们通过Google字体API加载。它在屏幕上渲染得很好,实际打印时我们客户办公室的一些打印机没有问题。在Lexmark MS410dn打印时,文字只会出现乱码。

5 个答案:

答案 0 :(得分:2)

我看到了这些相同类型的打印错误。我在Windows 10上的Indesign中使用Libre Baskerville字体创建了PDF。当我尝试使用Preview在OSX上打印PDF时,我得到了与上面相同的乱码字形。我通过卸载Truetype格式的Libre Baskerville字体并以Opentype格式安装Libre Baskerville字体并重置文档中的字体来修复它。似乎可行。

答案 1 :(得分:1)

最后,最简单的解决方案是使用不同的字体进行打印。这个问题只发生在几个特定打印机上的Libre Baskerville字体上,因此在我们的print.css样式表中我们只使用基本的serif字体。不理想,但至少打印输出是清晰的。

在原帖中,我说我曾尝试在打印输出中切换字体,用户仍然遇到问题。原来这是由于print.css样式表的缓存,因此修复实际上解决了问题。

从长远来看,我们可能会发现一种字体在所有打印机上都能保持一致,并将网站切换到那个。

答案 2 :(得分:1)

对于记录(以及任何以类似问题阅读此内容的人),我试图在LibreOffice上的笔记本电脑上打印用Libre Baskerville编写的文档时遇到了同样的问题。字体嵌入RTF和PDF格式,文本也以同样的方式出现乱码。我还通过更改为不同的字体解决了这个问题。遗憾的是,LibreBaskerville是一个不错的字体。

答案 3 :(得分:1)

尝试用 Open Type 版本替换 True Type 版本的字体 - 我现在可以毫无问题地打印 Libre Baskerville。 Open Type 版本并不容易找到,因为大多数下载(包括 Google 字体)仅提供 .ttf 文件选项。搜索 .otf 文件版本 - 我在这里找到了一个:https://www.broble.com/download-free-font/libre-baskerville

答案 4 :(得分:0)

可能是导入的字体文件中存在一些错误。有时,如果你使用webfont转换器的在线字体,它会在转换时出现一些错误。你可以试试Google Fonts。找到您喜欢的serif字体并使用他们的文件和导入脚本。

例如,如果您想使用字体Bitter:

  1. 只需将@import url(http://fonts.googleapis.com/css?family=Bitter);放在CSS文件的顶部
  2. 即可
  3. 在样式声明中使用font-family: 'Bitter', serif;
  4. 注意:如果出现问题,serif部分是后备,则客户端浏览器会选择默认的serif字体。