首页 > 解决方案 > 将 ExtGState 分配给 PDF 中的笔画不起作用

问题描述

我正在尝试将 ExtGState 对象分配给 pdf 中图像流中的笔画。ExtGState 应该设置笔画的混合模式。但无论如何,它都不起作用,PDF 规范也无济于事。我希望这里有人知道该怎么做。

这是我的 ExtGState 对象:

    5 0 obj
      << /Type /ExtGState
         /BM Multiply
      >>
    endobj

我的页面处理集:

4 0 obj
  << /ProcSet [/PDF /Text]
     /ExtGState << /GS1 5 0 R
                >>
  >>
endobj

最后是图像流

6 0 obj
  <<   >>
stream
 3 w
 0 0 0 RG
 1 J
 1 j
 178 2658 m
 310 2322 l 
 S


 10 w
0.13725490196078433 0.4196078431372549 0.5568627450980392 RG
 1 J
 1 j
 /GS1 gs
 [3 5] 6 d
 152 2423 m
 400 2600 l
 S
endstream

endobj

我正在使用 /GS1 gs 将 ExtGState 对象分配给我的第二次笔划。第一个笔画仅用于检查混合模式是否有效(无效)。

在这里你可以找到我的整个 pdf:https ://pastebin.com/nwGBb7vB

它应该看起来像这样:

在此处输入图像描述

标签: pdfpdf-generation

解决方案


您的图形状态字典中有语法错误:

5 0 obj
  << /Type /ExtGState
     /BM Multiply
  >>
endobj

Multiply需要是 PDF 名称对象。特别是它必须以斜线开头:

5 0 obj
  << /Type /ExtGState
     /BM /Multiply
  >>
endobj

进行此更改后,您将获得:

截屏


推荐阅读