如何将iText位置向量转换为页面上的相对位置百分比

时间:2013-08-05 19:02:28

标签: vector location itext

我正在使用iText的LocationTextExtractionStrategy类来查找PDF中的特殊字符,这似乎有效。我得到一个iText向量,如94.5,698.9,1.0(来自getStartLocation())和100.5,698.9,1.0(来自getEndLocation)。我想知道位置是什么,表示为与页面相关的百分比。目标是将PDF页面导出为图像并在网页上的div中使用它,并使用另一个div作为叠加(半透明)来突出显示该区域。例如,我可以找到一个人的名字,后跟特殊字符。我想把一个div放在特殊角色所在的那个地方。由于我有iText矢量,如果我可以某种方式将其转换为相对于PDF页面的百分比,那么我可以翻译该信息以用于div。例如,前25.125%,左边30.55% - 如果位置偏离标记几个像素就可以,因为我只想突出显示一般区域(垂直或水平给出或约5个像素)。

1 个答案:

答案 0 :(得分:1)

leftPercent = (location.getEndLocation().get(0) / pageWidth) *100,
topPercent = ((pageHeight - location.getEndLocation().get(1)) / pageHeight) *100

如果您有一个8.5英寸(宽)乘11英寸(高)的文档,那么如果特殊字符位于矢量152,594,1.0,那么等式将计算如下

leftPercent = (152 / 612) *100 = 25%topPercent = ((792 - 594) / 792) *100 = 25%

在我的测试案例中,我故意将特殊角色从顶部放置25%,从左侧放置25%。