2014-08-29 4 views
0

У меня есть проблема с чтением и отображением содержимого некоторых PDF-файлов в RichTextBox. Я использую следующий код:iTextSharp не может читать некоторые файлы PDF

string fileName = @"C:\Users\PC\Desktop\SomePdf.pdf"; 
string str = string.Empty; 

PdfReader reader = new PdfReader(fileName); 

for (int i = 1; i <= reader.NumberOfPages; i++) 
{ 
    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(); 
    String s = PdfTextExtractor.GetTextFromPage(reader, i, its); 

    s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); 
    str = str + s; 
    rtbVsebina.Text = str; 
} 

reader.Close(); 

Некоторые файлы PDF можно считывать и отображать в RichTextBox и некоторые они не могут быть. Для тех, кто не может быть прочитан, я получаю пустой RichTextBox, но с некоторыми добавленными строками, поскольку я несколько раз нажимаю клавишу «Enter» на клавиатуре.

Кто-нибудь знает, что может быть неправильным?

+0

Что * делает * происходит? любые ошибки? ничего не отображается? – Sayse

ответ

1

Вы путаете содержимое страницы с аннотациями страницы.

Содержание страницы является частью потока содержимого страницы. Он упоминается в записи /Contents словаря страницы и (необязательно) во внешних объектах (aka XObjects). С фрагментом кода, который вы копируете/вставляете в свой вопрос, вы извлекаете этот контент.

Богатое текстовое поле является одним из многих видов аннотаций. Аннотации не часть потока содержимого страницы. Они упоминаются в записи словаря /Annots. Если вы хотите получить содержание аннотации, вам нужно задать страницу для своих аннотаций вместо разбора содержимого страницы. См. Например, Reading PDF Annotations with iText.

В ответ на ваш вопрос «Что я делаю неправильно»: вы искали не то место.

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