Ошибка iTextSharp в PdfTextExtractor?

#c# #pdf #pdf-generation #itextsharp

#c# #PDF #генерация pdf #itext

Вопрос:

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

 protected void btnUpload_Click(object sender, EventArgs e)
        {
            if (fuPDFUpload.HasFile)
            {
                PdfReader reader = new PdfReader(fuPDFUpload.FileBytes);
                for (int i = 0; i < reader.NumberOfPages; i  )
                {
                    lblPdfText.Text  = PdfTextExtractor.GetTextFromPage(reader, i);    
                }

            }
        }
  

Приведенный выше код выдает исключение с нулевой ссылкой, reader не равен null, и i, очевидно, не является null, будучи int, если бы reader был равен null, я бы ожидал исключение ArgumentNullException. у Reader есть страницы, отсюда и тот факт, что он переходит в цикл. Я могу только думать, что это какая-то ошибка. Это открытый исходный код, поэтому я мог бы попытаться исправить это, но у меня действительно нет времени. Кто-нибудь знает, что здесь может происходить или как я мог бы это обойти?

Ответ №1:

Итак, в PDF-файлах нет страницы 0, приведенный ниже код работает нормально:

 protected void btnUpload_Click(object sender, EventArgs e)
        {
            if (fuPDFUpload.HasFile)
            {
                PdfReader reader = new PdfReader(fuPDFUpload.FileBytes);
                for (int i = 1; i <= reader.NumberOfPages; i  )
                {
                    lblPdfText.Text  = PdfTextExtractor.GetTextFromPage(reader, i);    
                }

            }
        }
  

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

Комментарии:

1. В будущем: ВСЕГДА публикуйте трассировку стека. Очень прошу. Сахар сверху.