#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. В будущем: ВСЕГДА публикуйте трассировку стека. Очень прошу. Сахар сверху.