在Microsoft Edge中阅读PDF时出现奇怪的图像渲染问题

时间:2018-10-08 18:40:20

标签: pdf microsoft-edge

我正在尝试阅读包含一些图像的PDF。这是它在Google Chrome浏览器中的外观:

enter image description here

在Edge中读取相同的pdf看起来像这样:

enter image description here

有人知道如何解决此问题吗?

我本来只是用Chrome来阅读pdf的,但是我使用Edge中的高级pdf注释功能,并且希望在可能的情况下继续使用Edge。

2 个答案:

答案 0 :(得分:1)

我再次尝试对您的PDF文件进行测试。

我能够用Edge产生问题。

enter image description here

我认为Image的格式存在一些问题。

出于测试目的,我下载了文件并在MS Word中打开,然后再次将其另存为PDF。

然后我在MS Edge中打开它,它可以正确显示图像。

因此,目前,您可以尝试使用此方法来避免此问题。

我将尝试将此问题通知开发团队。从他们那里得到回复可能需要一些时间。

直到您可以尝试使用变通方法。

enter image description here

答案 1 :(得分:1)

简而言之

此伪像是由PDF本身的怪异引起的!它在图像的左上角绘制一条宽线,长度为零长度。这将导致不同的查看器创建不同的输出,Adobe Reader不绘制任何内容,Chrome绘制一条线,Edge绘制一个圆。

  

有人知道如何解决此问题吗?

从PDF删除这种无意义的操作。

详细

这是手头页面内容流中操作的摘录,我在其中添加了注释(“%”行):

% Fill the bottom section of the page with white color
1 1 1 rg
36.85 54.425 466.242 204.831 re
f
% Show the bitmap image
q
226.885 0 0 189.694 155.905 69.562 cm
/Im4 Do
Q
% Start a marked content block
/Figure <</MCID 0>>BDC
q
1 i 
% Create a clip path along the image borders
% (to make following operations only operate on the image)
155.905 259.257 m
382.79 259.257 l
382.79 69.562 l
155.905 69.562 l
W n
q
% Set a number of properties to eventually draw a line with 0 length
% and ca. 200 width over the top left corner of the image
1.0936 0 0 -.91438 0 0 cm
0 0 0 RG
0 J 0 j 207.458 w 10 M []0 d
q 1 0 0 1 142.556 -283.534 cm 0 0 m
0 0 l
s
Q
EMC
Q
Q 

因此,确实存在PDF内容说明,可以在图像的左上角绘制某些内容。但是,不幸的是,这些说明很难遵循:

要正确绘制给定宽度的线,需要知道该线的方向。但是这里的线长为0,因此既没有线的可识别方向,也没有施加宽度的正交方向。

一个明显的选择是什么都不画。但是0长度也可能被解释为“尽可能短,同时仍然可见”,特别是因为在PDF规范中明确要求对0 width 行表示这种效果。

结果,不同的观众得出不同的结果,

  • Adob​​e Reader不会绘制任何内容,

    Adobe Reader screen shot

  • Chrome认为长度为0的线是水平的(任意选择),并绘制了一条非常短,非常宽的水平线,

    Chrome screen shot

  • 边缘不会选择任意方向,而是在所有方向上应用宽度,从而形成一个圆形。

    Edge screen shot

只要删除了画那条线的指令,所有观看者都一定会看到相同的图像。