【发布时间】:2017-05-29 12:45:32
【问题描述】:
当我将透明 PNG 图像放入我创建的 PDF 中时,iText(版本 5.5.10)会自动为其创建一个软蒙版。但是,在某些情况下,我需要删除此蒙版(或首先阻止 iText 生成它),因为正如 PDF 规范明确指出的那样,此蒙版会覆盖图形状态下的任何其他当前软蒙版,我绝对需要后者占上风。
if (<my-condition> && picture?.ImageMask != null)
picture.ImageMask = null;
不起作用,因为传递 null 会引发异常(iText 显然会尝试使用提供的值而不进行任何检查,这会导致空引用)。
【问题讨论】:
-
如果您不希望 iText 创建 SMASK,只需使用不透明的图像!因此,在这种情况下,只需进行一些图像预处理,去除透明度并根据您的要求更换透明部分。
-
好吧,我可能不得不回到这个,但我不会说这是我喜欢的方法。请注意,这些不是我可以轻松预处理的手动创建的图片。它是生产系统的一部分,它们大量到达并需要相应地处理。进行昂贵的预处理,而不是简单地消除现有变量。 :-)