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

将PDF文件转换为漂亮的表格,pdf,text,pdf-scraping,Pdf,Text,Pdf Scraping,我有这个PDF文件,分为5列 我看了又看,通过堆栈溢出(谷歌疯狂地搜索),并尝试了所有的解决方案(包括最后尝试AdobeAcrobat本身) 但是,由于某些原因,我无法获得csv/xls格式的这5列,因为我需要对它们进行排列。通常当我导出它们时,格式很糟糕,所有的条目都是一行一行地排列的,并且会丢失一些数据 这里有一个指向上述文件摘录的链接,但我真的很沮丧,而且已经没有选择了。iText(或iTextSharp)可以做到这一点,如果你能给它这5列的边界,并且愿意处理一些开销(即为每列重新划分页

我有这个PDF文件,分为5列

我看了又看,通过堆栈溢出(谷歌疯狂地搜索),并尝试了所有的解决方案(包括最后尝试AdobeAcrobat本身)

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

这里有一个指向上述文件摘录的链接,但我真的很沮丧,而且已经没有选择了。

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

Rectangle2D columnBoxArray[]=buildColumnBoxes();
ArrayList ColumnText=新的ArrayList(columnBoxArray.length);
用于(矩形2D Columnbox:columnBoxArray){
FilteredTextEnderListener textInRectStrategy=
新FilteredTextEnderListener(新位置TextExtractionStrategy(),
新型区域外滤器(columnBBox);
添加(pdftextractor.extractText(reader,pageNum,textInRectStrategy));
}
每一行文本都应该用
\n
分隔,因此它变成了一个简单的字符串解析问题


如果您不想为每个列重新分析整个页面,您可能会想出一个自定义的
FilteredTextRenderListener
实现,该实现将使用多个侦听器/筛选器对。然后,您可以对整个内容进行一次分析,而不是对每一列进行一次分析。

欢迎使用stackoverflow。你想用什么语言来做这件事?你找到解决办法了吗?在我编写一个工具时,是否可以提供整个文件的链接,该工具应该能够处理该文件,并且我有兴趣将其用作我的软件的测试。我很高兴向您发送生成的CSV文件。
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));
}