我有一些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"结尾似乎是一个小图像(字符在我的文档的情况下)。
在adobeacrobat中的视觉效果如下:截图自adobeacrobat
我需要确定边界框值(尺寸,如X-Y坐标和宽度和高度),就像它们只是一个对象一样。像下图:来自adobeacrobat
的边界框表示如上所述,我确定每个"字符"是一串"q"one_answers"q"。操作符
我想知道我们是否可以使用JAVA和PDFBOX获得这些尺寸(大边框),就像Adobe Acrobat能够做到的那样。
遵循此处发布的相同方法:
pdfbox 2.0.2>调用PageDrawer。processPage方法捕获异常
他们提到逻辑应该放在"strokePath()"方法,但对于@TilmanHausherr提到的我的情况,我使用了fillPath()"把我的逻辑写在那里。
请注意,您定义的类应该从PDFGraphicsStreamEngine扩展。