【问题标题】:How to get (x,y width height )of any given word in pdf using java如何使用java获取pdf中任何给定单词的(x,y宽度高度)
【发布时间】: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 示例。这可能会接近您想要的。

标签: java pdfbox


【解决方案1】:

我认为您可以使用Apache's PDFBox API 并按照this similar question 中的建议编写您需要的代码。

【讨论】:

  • 它没有给我给定文本的宽度高度。只是 X,Y。
  • 您使用什么代码获取xy 坐标?
  • textPosition.getViewQuadrilateral(); // 和你分享的链接一样。
  • AFAICS textPosition.getViewQuadrilateral() 不是 pdfbox 方法。我在quoppa代码中找到了这样的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2015-03-02
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
相关资源
最近更新 更多