使用ghostscript检查PDF是否具有透明对象

Flo*_* Bw 3 pdf transparency ghostscript pdf-parsing

PDF可以在几个部分中定义透明度(参见此处):

作为图形样式属性:

  • 将opacity(/ca)或stroke opacities(/CA)填充到1.0以下
  • 软面具的定义(\SMask)

或者使用透明度页面组(/S /Transparency)的定义.

以下grep表达式是对此的快速(和脏)检查:

grep -aE -e '/[Cc][Aa] +0?\.[0-9]' -e '/SMask' -e '/S /Transparency' *.pdf
Run Code Online (Sandbox Code Playgroud)

是否可以检查是否有透明物体gs

Ken*_*enS 5

我相信pdf_info.ps(gs/toolbin)会告诉你这个.Ghostscript想提前知道页面是否使用透明度,因为如果它知道没有透明度,它可以对性能和内存进行优化.

请注意,浮动的大量PDF文件声明"虚假"透明度,透明度变为100%不透明:-(

  • 一直在寻找一个解决方案来检查PDF的透明度2年了.这完全可以实现`gs -dNODISPLAY -q -sFile = input.pdf/var/bin/ghostscript-9.16/toolbin/pdf_info.ps`: d (2认同)