[英]Determine whether visual object is visible in a PDF using XFINIUM.PDF
在使用 XFINIUM.PDF 提取 pdf 中可视对象的边界时,我注意到一些可视对象实际上并不可见。
但是,我找不到任何可以用来确定它是否实际可见的属性。
与此相反,我不关心不可见的文本,因为它位于图像后面。
这是我的意思的一个例子。 出于某种原因,此 pdf 包含许多在页面上实际上不可见的文本。 其中一部分是实际可见文本的副本,另一部分可能来自下一页。 pdf 上的黑色矩形是右上角所选文本的边界框。
所有不可见文本都是 Form XObject 的子元素,但我不能忽略 XObject,因为顶部的图形也是 XObject 的子元素,包括轴描述,我不想排除这些。
我注意到可见文本在 PdfGrayColorSpace(包括轴描述)中,而不可见文本在 PdfIccColorSpace 中,但我认为仅忽略所有 IccColorSpace 内容会在其他一些 pdf 中失败。 我试过将它转换为 RGB,但它转换为 (0, 0, 0) 这显然没有帮助。
知道如何确定视觉对象是否可见吗?
pdf 可在此处获得,示例在第 9 页。
您已经确定不可见文本位于 Form XObject 中。 它不可见的原因是它在该 XObject 的边界之外:
339 0 obj
<<
/Type /XObject
/Subtype /Form
/BBox [ 253.4743 617.9332 447.7891 726.5818 ]
...
如果将边界框增加到整页的尺寸
...
/BBox [ 0 0 612 792 ]
...
第 9 页看起来像这样:
(显然 XObject 包含页面的旧版本。可能是图形的原始文件丢失了,因此使用了早期版本的该页面的副本。)
因此:
知道如何确定视觉对象是否可见吗?
测试 Form XObject 内容是否在其BBox 内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.