Css 打印网站时出现乱码文本

Css 打印网站时出现乱码文本,css,printing,fonts,Css,Printing,Fonts,我正在一个网站上工作,在那里,用户将相当频繁地打印来自该网站的页面,以便将它们提供给无法访问互联网的人。在用户的office打印机上打印时,有些文字会出现乱码: 芝加哥交通管理局(Chicago Transit Authority)应该说降低票价和免费乘车计划 我的第一个想法是,这与我们正在使用的字体有关,因此我将该文本改为具有字体系列:“Times New Roman”,衬线。谷歌的一些研究让我认为这些字体设置得到了广泛的支持,不会造成问题,但我们的用户仍然存在这个问题 即使你不知道如何解决

我正在一个网站上工作,在那里,用户将相当频繁地打印来自该网站的页面,以便将它们提供给无法访问互联网的人。在用户的office打印机上打印时,有些文字会出现乱码:

芝加哥交通管理局(Chicago Transit Authority)应该说降低票价和免费乘车计划

我的第一个想法是,这与我们正在使用的字体有关,因此我将该文本改为具有
字体系列:“Times New Roman”,衬线。谷歌的一些研究让我认为这些字体设置得到了广泛的支持,不会造成问题,但我们的用户仍然存在这个问题

即使你不知道如何解决这个问题,我也会很感激你的建议

  • 除了字体选择之外,还有什么其他原因会导致这种情况
  • 如果你确实认为它与字体有关,那么什么是好的字体?或者我怎么知道,它是特定于打印机的
  • 更新 页面是从浏览器打印的,对于这一特定的用户组,浏览器是IE8。我不确定他们使用的是什么版本的Windows。我在办公室的一台装有IE8的Windows机器上测试过这个问题,但无法重现这个问题。因此,虽然浏览器可能是一个因素,但我不认为它是唯一的因素

    第二次更新
    我们使用的字体是,我们通过谷歌字体API加载。它在屏幕上呈现良好,实际上从我们客户办公室的一些打印机打印时没有问题。文本只有在打印到打印机上时才会出现乱码。

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

    例如,如果要使用字体:

  • 只需将
    @导入url(http://fonts.googleapis.com/css?family=Bitter);位于CSS文件的顶部
  • 使用
    字体系列:“苦”,衬线在样式声明中

  • 注意:
    serif
    部分是一个备用部分,以防出现问题,然后客户端浏览器选择默认的serif字体。

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

    在最初的帖子中,我说我曾尝试在打印输出中切换字体,但用户仍然有问题。这是由于
    print.css
    样式表的缓存造成的,所以这个补丁确实解决了这个问题


    从长远来看,我们可能会找到一种在所有打印机上都能使用的字体,并将网站切换到这种字体。

    记录在案(以及任何阅读过类似问题的人),我在LibreOffice的笔记本电脑上打印一份用Libre Baskerville编写的文档时遇到了完全相同的问题。字体以RTF和PDF格式嵌入,文本以相同的方式乱码。我还通过改变字体来解决这个问题。很遗憾,LibreBaskerville是一种很好的字体。

    我看到了同样类型的打印错误。我使用Libre Baskerville字体在Windows 10上的Indesign中创建了一个PDF。当我尝试使用预览在OSX上打印PDF时,我得到了上面看到的相同的乱码符号。我通过卸载Truetype格式的Libre Baskerville字体,安装Opentype格式的Libre Baskerville字体,并重置文档中的字体来修复它。这似乎很管用。

    试着用开放式字体替换字体的真实字体版本-我现在可以毫无问题地打印Libre Baskerville了。开放式版本不容易找到,因为大多数下载(包括谷歌字体)只提供.ttf文件选项。搜索.otf文件版本-我在这里找到了一个:

    您使用什么来打印网页?您是从浏览器(哪个浏览器?)打印它,还是在服务器端生成PDF,还是在客户端使用某种HTML5画布绘制它?一些打印机中有字体渲染引擎,但大多数打印作业都嵌入字体,所以我怀疑是您的office打印机导致了问题。一种简单的测试方法是打印使用相同字体的不同网页。如果页面打印正确,那么您就知道这不是硬件问题。不过,如果我们真的要提供帮助的话,查看您使用的代码会很有用,否则我们只能猜测。另外,您的用户是从Mac还是PC打印的?Mac电脑(默认情况下)没有Times New Roman,但有一种类似的字体,叫做“Times”。你可以尝试类似于
    字体系列的东西:TimesNewRoman,'TimesNewRoman',Times,Baskerville,Georgia,serif
    这可能有助于解决问题。我又想到了一个问题,您也可以尝试使用
    @font-face
    嵌入字体,绕过未安装字体的用户的任何问题。您甚至可以使用单独的“打印”样式表并嵌入SVG字体。SVG字体实际上只是矢量轮廓,而不是实际的字体,因此任何硬件问题都应该避免。感谢最初的反馈,我在上面发布了一些更新。您是否希望看到代码中的任何特定部分?谢谢您的建议。我们已经在使用谷歌字体,Libre Baskerville字体。由于它在屏幕上和大多数打印机上呈现良好,我怀疑导入的字体文件是否有错误。您需要在回答中提供任何限制、假设或简化。有关如何回答的更多详细信息,请访问此链接:谢谢!我不再使用这个系统了,也不需要对这个建议进行测试,但希望它能对其他人有所帮助