Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top