在java中提取PDF的页脚数据

时间:2014-10-01 14:38:20

标签: java pdfbox

我能够从字符串中的pdf页面获取数据。 但与此同时,还提取了页脚数据。我想从pdf的所有页面中删除它们。我怎么能删除它 我使用了Rectangle2D,但坐标没有给出数据

1 个答案:

答案 0 :(得分:1)

在评论中,OP表示他使用了这段代码:

PDDocument doc = PDDocument.load("xyz.pdf");
PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get( 1 );
Rectangle2D region = new Rectangle2D.Double(10, 10, 10, 10);
String regionName = "region";
PDFTextStripperByArea stripper = new PDFTextStripperByArea();
stripper.addRegion(regionName, region);
stripper.extractRegions(page);
System.out.println("Region is "+ stripper.getTextForRegion("region"));

对于大多数文档,此代码不会提取任何文本,因为它会查看第二个文档页面左上角区域中的一个小(10x10 pt)区域。因此,new Rectangle2D.Double(10, 10, 10, 10)中的值必须更改。

  

我尝试了各个地区,但我没有收到任何文字,如果你有一个普通的pdf页面的想法,你应该分享

没有像普通的pdf页面那样的东西。 PDF的目标是使用户能够轻松可靠地交换和查看电子文档,而不受其创建环境或查看或打印环境的影响。没有严重的限制页面尺寸或页面上内容的位置。

E.g。 this form

Canada Life HIPAA form

你需要像这样的价值

PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get(0);
Rectangle2D region = new Rectangle2D.Float(0f, 230f, 612f, 300f);

提取身体“我授权任何健康计划......我已收到此授权的副本。”没有页眉,页脚或表格线。

如果您有许多类似的页面(例如,一个大型文档,其中许多页面具有相似的布局),则必须进行一次测量,但需要对许多页面进行一次提取。