【发布时间】:2019-09-01 07:38:16
【问题描述】:
我需要在 pdf 中获取给定单词的 x、y、宽度和高度。以便稍后在解析相同类型的文件时,我可以从坐标本身获取值。我应该如何使用 java 从 PDF 中获取单词的位置。
Rectangle rect = new Rectangle(451, 125,100,1); // i need to get this co-ordate for any particular word
stripper.addRegion("class1", rect);
stripper.extractRegions(pdDocument.getPage(0));
System.out.println("stripper "+stripper.getTextForRegion("class1").trim());
【问题讨论】:
-
我认为你的做法是错误的。 PDF 使用标记而不是矩形来定义其文本。在呈现 PDF 之前,您实际上不会得到 X 和 Y。
-
您使用什么库/阅读器来阅读 PDF 文档?您只是将其作为文本阅读还是使用 Apache PDFTextStripper 或其他方式阅读?
-
我正在使用 PDFTextStripper 阅读。
-
@Robert “PDF 使用标记定义其文本,而不是矩形。” - 有标记的 pdf(我假设您的意思是 markup ) 但标签在 pdf 中是可选的。本质上,pdf 中唯一需要的是文本片段(或图形片段)在给定坐标处绘制并具有固定尺寸。所以一般来说你只有有矩形...
-
查看源代码下载中的 DrawPrintTextLocations.java 示例。这可能会接近您想要的。