Pdf.js: 文本的打印质量低,也许字体显示不正确。

创建于 2015-10-03  ·  31评论  ·  资料来源: mozilla/pdf.js

操作系统:Windows 10
浏览器:Firefox 41.0.1
Pdf.js版本:1.1.494
网址: http
在firefox浏览器中,可以如下正确显示
qq 20151004001137
但是当它被打印时,单词将被错位或模糊如下
qq 20151004001342
然后,我尝试使用Firefox浏览器中嵌入的pdf.js进行打印,可以正确打印。

我不知道为什么,但这对我来说很重要。

4-printing

所有31条评论

在发布firefox 41版本后,开始出现字体无法正确呈现的相同问题。

可能与#5006有关。

该问题与Firefox 41中默认启用CSS字体加载API有关,
about:config首选项“ layout.css.font-loading-api.enabled”更改为false可解决打印问题。

刚才需要确定在PDF JS中要进行哪些更改,以便它无需更改about:config首选项即可工作

有趣的发现,感谢您对此进行调查!

是的,layout.css.font-loading-api.enabled解决了该问题,但是如果那是问题,那么为什么要使用Firefox随附的pdf.js正确打印呢?

此问题似乎已在最新版本1.3.88中修复。

不,它不起作用,这是我使用HP MFP打印机获得的输出:
20160108_163326

我可以确认打印预览​​也不适用于我,其结果与上述相同。 重新打开。

是! 我确实遇到了同样的问题...预览文档时,使用正确的字体看起来还可以,但是打印时却不...与edwardmeng于2015年10月4日评论的字体不正确。并非所有打印出的字体均不正确,但有时候是这样但是当我下载生成的pdf文件并使用Foxit Reader打开时,可以打印出来。

我能够在Arch Linux上100%地重现该问题。 我从使用Linux的其他人(Ubuntu和其他发行版)知道,他们也有100%的时间遇到​​了此错误。 有趣的是,翻转layout.css.font-loading-api.enabled首选项确实为我解决了这个问题,所以我想知道这是否真的是有关字体加载API的上游问题? 请注意,这仅对我使用Firefox会发生:例如Chrome没有问题。

随着文档的进行,我们的文本模糊。 前几部分看起来比较清晰,但是每一页都会变得越来越差。 我们在Chrome上都使用Win / Mac / Linux。 UI Web App虽然正在Linux EC2实例上运行。

嗨,是否有任何更新可以解决此问题?

我们最近尝试了最新版本,但仍然模糊不清。 最终只使用了内置的Chrome PDF预览器,对我们来说效果很好。

标记

2016年6月7日上午12:18,alisham70 [email protected]写道:

嗨,是否有任何更新可以解决此问题?

-
您收到此邮件是因为您发表了评论。
直接回复此电子邮件,在GitHub上查看,或使该线程静音。

如果您无法在不久的将来解决此问题,我打算使用Chrome,因为我们即将与用户进行用户接受度测试以打印输出。 我以前已经使用Chrome进行过测试,并且可以正常打印。 我更喜欢使用Firefox而不是Chrome。...但是似乎我别无选择。

有什么进展吗?

字体加载API或与PDF.js代码结合在一起很可能是上游问题。 我们需要研究到底是什么原因造成的。

我可以以任何方式支持吗? 我们的客户报告了同样的问题。

我认为这个问题很难解决,因为它似乎是随机发生的。 有时可以打印,但有时不行。

好吧,对我来说,它是可立即复制的,在这里也有报道,他们可以100%复制它。 (我在Mac上使用的是Firefox 47.0.1)

@AndreasEK是否有解决问题的主意?...我的客户也有同样的问题...如果使用chrome,则不会发生...(但我的客户更喜欢使用Firefox而不是chrome)。

在自定义查看器上有同样的问题。
起初,我坚称textLayer是渲染器,但事实并非如此,textLayer字符很好,但从错误的打印中丢失了。
因此它必须是printContainer中的画布...但是它们已正确渲染,您可以使用类似以下内容的方法对其进行快速测试,以使其保持可见状态:

[ mozPrintCallback_Polyfill.js:31 ]
window.print = function print() {
  outerContainer.remove()
  printContainer.style = "display: block;"
[ viewer.js:1307 ]
afterPrint: function pdfViewSetupAfterPrint() {
  return

下一步似乎是从mozPrintCallback参数调用上下文调用pdf.js中的PDFPageProxy_render时,该上下文由pdf_page_view.js中分配给canvas.mozPrintCallback的函数定义。 但是我找不到关于mozPrintCallback内部的任何有效文档,因此我不清楚是否在查看器中进行渲染并将其作为Blob分配给打印上下文,还是由浏览器打印本身执行画布指令...

通过好奇检查传递给mozPrintCallback的2d上下文,它的字体属性设置为“ sans-serif”,这是我在错误打印时到处都可以看到的默认字体。

有谁知道如何调查这个线索? 是否有有关mozPrintCallback的文档?

问题可能存在于//#if!(MOZCENTRAL || FIREFOX)相关代码中吗?

我也面临着同样的问题。 我在我的PDF中使用了'Times New Roman'字体,该字体在Mozilla中显示正确,但是在打印时字体显示不正确。 此外,字体样式粗体和斜体也不会出现。 请为此提出建议。 什么时候可以解决此问题?

按照#7694的规定关闭。

垃圾。 即使在45.9.0的Debian 8下,无论有没有解决方法,它仍然不能完全正常运行。预览始终看起来是正确的。 “打印”中的字体在80%的时间内无法正确加载。

可以确认@alexyuriev指出了什么。

错误未修复。 在Kubuntu 18.04上向Brother MFC-J880DW打印时,Firefox在打印某些Latex文档时无法正确加载字体。

我认为所有PDF打印输出看起来

拉取请求#9982是此操作的后续操作,它使我们能够在Firefox中使用字体加载API,以前这是不可能的,并且在打印时应修复错误的字体。

尊敬的@timvandermeij以及pdf.js和Firefox的所有人,

我们在Firefox的最新发行版中遇到了一个与此问题类似的问题,因此我们想在这里分享我们的观察结果。

介绍

在遵循#9982到[错误1473742]之后(使用CSS字体加载API加载的字体无法打印),这告诉我们相应的问题可能已在Firefox 63中得到解决,对吗? 我们在pdf.js发现了有关字体加载的不同问题,但是我们无法确定我们是否真的遇到了同样的问题。 但是,我们想报告我们的发现。

观察

我们发现PDF文档[1]可以在文本变形的情况下打印,而以前在Firefox中可以正常显示。 但是,在首先下载文档后,将其从操作系统发送到打印机时,该文档可以完美打印。 这也给我们带来了pdf.js的字体问题。 我们还附加了下面pdffonts的相应输出,并链接到[2]供参考。

我们在macOS 10.13.3上运行Firefox 65.0.1。

也许您可以弄清楚EPO发布的这些PDF文档可能出了什么问题? 在此先感谢您的努力。

亲切的问候,
安德烈亚斯

[1] https://data.epo.org/publication-server/pdf-document?cc=EP&pn=1508424&ki=A1
[2] https://meta.ip-tools.org/t/problem-when-accessing-pdf-document-of-ep1508424a1/131


附录

pdffontsEP1508424A1.pdf

$ http 'https://data.epo.org/publication-server/pdf-document?cc=EP&pn=1508424&ki=A1' > EP1508424A1.pdf

$ pdffonts EP1508424A1.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
VCVGEE+ArialMT                       Type 1C           Custom           yes yes yes     48  0
VCVGEE+Arial-BoldMT                  Type 1C           Custom           yes yes yes     47  0
IBLOAD+C39P24Nfz                     Type 1            Custom           yes yes no      52  0
VCVGEE+Symbol                        Type 1C           Builtin          yes yes yes     55  0
VCVGEE+Arial-ItalicMT                Type 1C           Custom           yes yes yes     25  0

我认为它可以通过新补丁https://bugzilla.mozilla.org/show_bug.cgi?id=1524640修复,该补丁解决了从Firefox打印时字体加载的问题。 您可以使用Firefox Nightly进行检查。

亲爱的@timvandermeij

感谢您的快速回答。 我们已经能够再次确认此版本在当前的Firefox Nightly上是否可以正常使用,就像已经广泛使用的_Firefox Beta 66b12_一样。 优秀的! 更多详细信息和直接下载链接可以在[1]中找到。

再次感谢,保持精神。

亲切的问候,
安德烈亚斯

[1] https://meta.ip-tools.org/t/problem-when-accessing-pdf-document-of-ep1508424a1/131/3

没问题! 很高兴能够提供帮助。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

kleins05 picture kleins05  ·  3评论

patelsumit5192 picture patelsumit5192  ·  3评论

anggikolo11 picture anggikolo11  ·  3评论

SehyunPark picture SehyunPark  ·  3评论

jigskpatel picture jigskpatel  ·  3评论