2016-01-29 2 views
0

Привет, я пытаюсь прочитать различные pdf-файлы с помощью ItextSharp.dll, некоторые из них бросают мне исключение, когда я пытаюсь его прочитать. Исключение составляет следующее: «У документа нет корневого сайта (что означает: это недопустимый PDF)». Я сделал несколько тестов в примере слияния, на веб-странице Itext (Merge-Example), и они успешны. Итак, может ли кто-нибудь помочь мне увидеть, что я делаю неправильно? Это мой код:ItextSharp-Исключение в инициализации читателя «Документ не имеет корневой страницы»

public void MergeFiles(String[] strFiles, String strFileresult) 
    { 
     Document document = new Document(); ; 
     PdfCopy copy; 

     copy = new PdfCopy(document, new FileStream(strFileresult, FileMode.Create)); 
     document.Open(); 

     PdfReader[] reader = new PdfReader[3]; 

     for (int i = 0; i < strFiles.Count(); i++) 
     { 

      reader[i] = new PdfReader(strFiles[i]); 
      copy.AddDocument(reader[i]); 
     } 
     document.Close(); 
     for (int i = 0; i < reader.Count(); i++) 
     { 
      reader[i].Close(); 
     } 
    } 

ответ

0

Я не уверен, что вызывает у вас точно проблему, но как только мы избавимся от ненужных внутренних массивов и переключиться на using шаблон, чтобы получить автоматическую очистку все работает просто отлично.

public void MergeFiles(string[] strFiles, String strFileresult) { 
    using(var document = new Document()) { 
     using (var copy = new PdfCopy(document, new FileStream(strFileresult, FileMode.Create))) { 

      document.Open(); 

      foreach(var file in strFiles) { 
       using (var reader = new PdfReader(file)) { 
        copy.AddDocument(reader); 
       } 
      } 

      document.Close(); 
     } 
    } 
} 
+0

Спасибо за ваш ответ, я стараюсь свой метод, но продолжает бросать же исключение в этой строке «с помощью (Var читателя = новый PdfReader (файл))». Это исключение происходит только с некоторыми файлами, но странно, что тестовая страница обрабатывает файл конфликта. –

+0

Можете ли вы опубликовать файл проблемы для нас, чтобы проверить? –

+0

уверен, что это файл. [PDF] (https://drive.google.com/folderview?id=0B76us6MtUwziNFJKUkxwczlQTkE&usp=sharing) –

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