Преобразование файла PDF в хорошую таблицу - PullRequest
0 голосов
/ 21 марта 2011

У меня есть этот файл PDF, который состоит из 5 столбцов.

Я посмотрел и просмотрел Stack Overflow (и безумно гуглил) и попробовал все решения (в том числе последний способ попробовать сам Adobe Acrobat).

Однако по какой-то причине я не могу получить эти 5 столбцов в формате csv / xls - так как они мне нужны.Обычно, когда я их экспортирую, формат ужасный, и все записи располагаются построчно с некоторой потерей данных.

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

Вот ссылка на выдержку из файла выше, но я действительно расстраиваюсь и у меня заканчиваются варианты.

1 Ответ

1 голос
/ 21 марта 2011

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, которая бы принимала несколько пар слушатель / фильтр. Затем вы можете проанализировать все это один раз, а не один раз для каждого столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...