如何使用 Mako SDK 检测 PDF 中的透明度?

How do I use the Mako SDK to detect transparency in a PDF?

我正在使用 Mako SDK 分析我的 PDF。我目前正在 DOM 使用:

IDOMNode::walkTree(...)

但我不确定如何判断节点是否透明,或使用透明度。

有没有办法检测我的节点树的透明度?

IRendererTransform可以用来做这个。基本上,您设置一个 IRendererTransform 来呈现节点树中的任何透明内容。之后,您可以使用 probe(...) 计算在该场景中是否会呈现任何内容。

这段代码展示了如何做到这一点:

IRendererTransformPtr transform = IRendererTransform::create(jawsMako);
transform->renderTransparentNodes(true);

if (transform->probe(<your node tree here>))
{
    // If we get here there is something transparent
}

请注意,在大多数情况下,不透明度为零的项目不被视为透明的,因为它们很容易被丢弃。