提问者:小点点

获取矢量图形(位图图形)PDFBOX Java的边界框尺寸


我有一些PDF文档,其中的主要内容是矢量图形(位图图形)。像下面这样。

重要提示:这些是PDF中唯一的运算符类型。它不包含文本、图像或其他类型的对象。(我使用PDFBox调试器查看了所有内容)。

q
  0.75 0 0 -0.75 36.12 573.96 cm
  0 0 0 rg
  0 0 m
  2.24 0 l
  2.24 5.92 l
  3.04 5.92 l
  3.04 0 l
  5.28 0 l
  5.28 -0.8 l
  0 -0.8 l
  0 0 l
  h
  f
Q
q
  0.75 0 0 -0.75 43.800003 572.04 cm
  0 0 0 rg
  0 0 m
  0 -1.44 -0.96 -1.76 -1.76 -1.76 c
  -2.56 -1.76 -3.04 -1.28 -3.2 -0.96 c
  -3.2 -0.96 l
  -3.2 -3.36 l
  -4 -3.36 l
  -4 3.36 l
  -3.2 3.36 l
  -3.2 0.64 l
  -3.2 -0.64 -2.56 -0.96 -1.92 -0.96 c
  -1.12 -0.96 -0.8 -0.64 -0.8 0.16 c
  -0.8 3.36 l
  0 3.36 l
  0 0 l
  h
  f
Q

.
.
.

以“Q”结尾的每个“q”块似乎都是一个小图像(在我的文档中是字符)。

这是它在Adobe Acrobat中的视觉效果:取自Adobe Acrobat的屏幕截图

我需要确定边界框的值(尺寸,如X-Y坐标和宽度和高度),就像它们只是一个对象一样。如下所示:Adobe Acrobat中的边界框表示

如上所述,我确定每个“字符”是PDF内容中的“q和Q”运算符块。

我想知道我们是否可以使用JAVA和PDFBOX获得这些尺寸(大边界框的尺寸),就像Adobe Acrobat能够做到的那样。


共1个答案

匿名用户

按照这里发布的相同方法:

pdfbox 2.0.2

他们提到逻辑应该放置在“strkePath()”方法上,但对于@TilmanHausherr提到的我的案例,我使用“fillPath()”在那里编写我的逻辑。

请注意,您定义的类应该从PDFGraphicsStreamEngine扩展。