2017-02-22 27 views
1

Привет У меня есть PDF с содержанием следующим образом: -C# Pdf в текст со значениями в нескольких линии

Property Address: 123 Door   Form Type: Miscellaneous 
        ABC City 
        Pin - XXX 

Так что, когда я использую itextSharp, чтобы получить содержание, оно получается следующим образом -

Property Address: 123 Door Form Type: Miscellaneous ABC City Pin - XXX 

Данные смешаны, так как они находятся в следующей строке. Пожалуйста, предложите возможный способ получения контента по мере необходимости. Благодаря

Property Address: 123 Door ABC City Pin - XXX Form Type: Miscellaneous 
+0

Попробуйте прочитать PDF в столбцах [Пожалуйста, смотрите эту запись] (http://stackoverflow.com/questions/25498598/ read-columns-of-pdf-in-c-sharp-use-itextsharp) – AKN

+1

Как вы, глядя на pdf, понимаете, что эти слова принадлежат друг другу в том порядке, в котором вы хотите? Как только вы сможете описать это достаточно подробно, попробуйте реализовать это в программе. – mkl

+0

Я получил решение с одного из сообщений. Он работает на меня. Пожалуйста, просмотрите его. Спасибо –

ответ

0

Следующий код с помощью iTextSharp помог в форматировании PDF -

PdfReader reader = new PdfReader(path); 
int pagenumber = reader.NumberOfPages; 
for (int page = 1; page <= pagenumber; page++) 
{ 
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); 
    string tt = PdfTextExtractor.GetTextFromPage(reader, page , strategy); 
    tt = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(tt))); 
    File.AppendAllLines(outfile, tt, Encoding.UTF8); 
} 
+0

'SimpleTextExtractionStrategy' возвращает текст в порядке его рисования. В вашем случае это, похоже, тот порядок, в котором вы нуждаетесь. Но решение, создающее ваши входы, может со временем меняться, и если заказы тогда не совпадают, вы должны найти другой способ. – mkl

+0

Было сказано: 'tt = Encoding.UTF8.GetString (ASCIIEncoding.Convert (Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes (tt)))' является сложным NOP (No-Operation), не является Это? – mkl

 Смежные вопросы

  • Нет связанных вопросов^_^