在不同的PDF查看器中具有不同输出的PDF(带阴影)

在不同的PDF查看器中具有不同输出的PDF(带阴影),pdf,pdf.js,mupdf,pdfium,Pdf,Pdf.js,Mupdf,Pdfium,考虑以下PostScript文件 [1 0 0.5 0.866 150 550] concat << /ShadingType 2 /Coords [ 0 0 100 100] /BBox [ 0 0 100 100] /ColorSpace [ /DeviceRGB ] /Function << /FunctionType 0 /Domain [0 1] /

考虑以下PostScript文件

[1 0 0.5 0.866 150 550] concat
<< 
   /ShadingType 2 
   /Coords [ 0 0 100 100] 
   /BBox [ 0 0 100 100] 
   /ColorSpace [ /DeviceRGB ] 
   /Function 
      << 
         /FunctionType 0 
         /Domain [0 1] 
         /Range [0 1 0 1 0 1] 
         /BitsPerSample 8 
         /Size [2] 
         /DataSource <FFA0A0FFE0E0> 
      >>
   /Extend [false false] 
>> 
shfill
[1 0.5 0.866 150 550]混凝土
/扩展[假]
>> 
shfill
考虑使用GhostScript(ps2pdf)或Adobe Distiller将该文件转换为PDF格式

生成的PDF在不同的PDF查看器中呈现方式不同:

  • 在AdobeReader或Firefox(使用PDF.js)中,我们有一个平行四边形(而不是矩形)
  • 在苏门答腊PDF(使用MuPDF)和Chrome(使用PDFium)中,我们有一个矩形

谁是对的?

在我看来,Adobe Acrobat是对的,但对规范的解读也可能有所不同

您的PDF包含以下内容流:

/GS1-gs
Q
10.5.866150550厘米
/Sh1-sh
Q
即,首先更改当前变换矩阵,对其进行剪切和挤压,然后绘制阴影Sh1。该着色依次定义为

<</BBox[0 0 100 100]/ColorSpace/DeviceRGB/Coords[0 0 100 100]/Function 15 0 R/ShadingType 2>>

即,使用100×100正方形边界框(解释为临时附加剪切路径)和沿其(0,0)至(100,100)对角线的轴向着色,与postscript定义匹配

着色操作符
sh
指定为

操作数 操作人员 描述 名称 sh (PDF 1.3)根据当前剪辑路径,绘制阴影字典描述的形状和颜色阴影。图形状态下的当前颜色既不使用也不更改。该效果与使用着色图案作为当前颜色绘制路径的效果不同。名称是当前资源字典的着色子字典中着色字典资源的名称(请参见7.8.3“资源字典”)。着色字典中的所有坐标都是相对于当前用户空间进行解释的。(相比之下,当在类型2图案中使用着色字典时,坐标在图案空间中表示。)所有颜色在着色字典的颜色空间条目标识的颜色空间中解释(参见“表77-所有着色字典共有的条目”)。背景条目(如果存在)将被忽略。
此运算符应仅应用于有界或几何定义的着色。如果应用于无界着色,它会在整个剪裁区域上绘制着色的渐变填充,这可能很耗时。
在我看来,AdobeAcrobat是正确的,但是对规范的解读也可能有所不同

您的PDF包含以下内容流:

/GS1-gs
Q
10.5.866150550厘米
/Sh1-sh
Q
即,首先更改当前变换矩阵,对其进行剪切和挤压,然后绘制阴影Sh1。该着色依次定义为

<</BBox[0 0 100 100]/ColorSpace/DeviceRGB/Coords[0 0 100 100]/Function 15 0 R/ShadingType 2>>

即,使用100×100正方形边界框(解释为临时附加剪切路径)和沿其(0,0)至(100,100)对角线的轴向着色,与postscript定义匹配

着色操作符
sh
指定为

操作数 操作人员 描述 名称 sh (PDF 1.3)根据当前剪辑路径,绘制阴影字典描述的形状和颜色阴影。图形状态下的当前颜色既不使用也不更改。该效果与使用着色图案作为当前颜色绘制路径的效果不同。名称是当前资源字典的着色子字典中着色字典资源的名称(请参见7.8.3“资源字典”)。着色字典中的所有坐标都是相对于当前用户空间进行解释的。(相比之下,当在类型2图案中使用着色字典时,坐标在图案空间中表示。)所有颜色在着色字典的颜色空间条目标识的颜色空间中解释(参见“表77-所有着色字典共有的条目”)。背景条目(如果存在)将被忽略。
此运算符应仅应用于有界或几何定义的着色。如果应用于无界着色,它会在整个剪裁区域上绘制着色的渐变填充,这可能很耗时。
请共享pdf内容。pdf文件为。请共享pdf内容。pdf文件为