将PDF文件转换为漂亮的表格

时间:2011-03-21 12:23:20

标签: pdf text pdf-scraping

我有这个PDF文件,排列在5列。

我看了看Stack Overflow(并疯狂地搜索)并尝试了所有解决方案(包括尝试Adobe Acrobat本身的最后手段)。

然而,出于某种原因,我无法以csv / xls格式获得这5列 - 因为我需要它们安排。通常当我导出它们时,格式很糟糕,并且所有条目都是逐行排列的,但有一些数据丢失。

http://www.2shared.com/document/PagE4A1T/ex1.html

以上链接指向上述文件的摘录,但我真的感到沮丧,而且选项用完了。

1 个答案:

答案 0 :(得分:1)

iText(或iTextSharp)可以做到这一点,如果你可以给它这5列的边界,并愿意处理一些开销(即重新分析每列的页面文本)

Rectangle2D columnBoxArray[] = buildColumnBoxes();
ArrayList<String> columnTexts = new ArrayList<String>(columnBoxArray.length);
For (Rectangle2D columnBBox : columnBoxArray) {

  FilteredTextRenderListener textInRectStrategy = 
    new FilteredTextRenderListener(new LocationTextExtractionStrategy(), 
      new RegionTextRenderFilter( columnBBox ) );

  columnTexts.add(PdfTextExtractor.extractText( reader, pageNum, textInRectStrategy));
}

每行文本应该用\n分隔,因此它变成了字符串解析的简单问题。

如果您不想为每列重新分析整个页面,您可能会想出一个FilteredTextRenderListener的自定义实现,它将需要多个侦听器/过滤器对。然后,您可以为每个列解析整个事物而不是一次。

相关问题