iTextSharp ошибка в PdfTextExtractor? - PullRequest
1 голос
/ 08 июня 2011

Я только начинаю пытаться использовать 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);    
                }

            }
        }

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

1 Ответ

4 голосов
/ 08 июня 2011

ОК, поэтому в 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);    
                }

            }
        }

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

...