Заранее спасибо.
Фон:
Я работаю над консольным приложением, которое извлекает данные из определенных разделов в документах PDF. Для этого мне сначала нужно преобразовать этот PDF-файл в строку для работы. Для этого я обратился к iTextSharp. PDF-файлы располагаются с двумя столбцами на странице, поэтому я использую SimpleTextExtractionStrategy() (я пробовал iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(), но обнаружил, что это неэффективно для макета страницы).
Описание контента, преобразуемого в текст:
Страницы, с которыми у меня, кажется, возникают проблемы, имеют «заголовок», размещенный сбоку страницы. Страницы с заголовками периодически рассредоточены по документу.
Изображение макета страницы: http://postimg.org/image/b7i25v0g1/
Проблема:
Кажется, когда он заканчивает просматривать столбцы на странице, он переходит к этому боковому заголовку. Затем он переходил на следующую страницу с боковым заголовком, преобразовывал его в текст, а затем снова начинал с верхней части страницы, где встречался первый заголовок.
Я бы закончил с текстом, который выглядит так:
Страница 1 Содержание
Первый заголовок
Второй заголовок
Страница 1 Содержание
Страница 2 Содержание
и Т. Д.
Вот файл в формате pdf: http://www.filedropper.com/dd35-completeadventurer
Я не женат на iTextSharp, мне просто нужен надежный способ конвертировать документы этого формата в текст. Обходной или альтернативный метод будет оценен по достоинству.
static public string ToTxt(string @filePath)
{
string strText = string.Empty;
try
{
PdfReader reader = new PdfReader(filePath);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
Widgets.ProgressBar(page);
//Convert PDF to Text
ITextExtractionStrategy its = new SimpleTextExtractionStrategy(); //iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
String s = PdfTextExtractor.GetTextFromPage(reader, page, its);
strText = strText + s;
}
reader.Close();
Console.WriteLine("File Extracted");
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
finally
{
Console.Clear();
}
return strText;
}
s
переменная - person Chris Haas   schedule 27.07.2015