PdfTextExtractor中的iTextSharp错误

本文关键字:错误 iTextSharp 中的 PdfTextExtractor | 更新日期: 2023-09-27 17:58:44

我刚刚开始尝试使用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);    
                }
            }
        }

上面的代码抛出了一个null引用异常,reader不是null,而i显然不是null,如果reader是null,我会期望一个ArgumentNullException。读者有页面,因此它进入了循环。我只能认为这是某种错误。它是开源的,所以我可以尝试修复它,但我真的没有时间。有人知道这里可能发生了什么吗?或者我该如何处理它?

PdfTextExtractor中的iTextSharp错误

好的,所以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);    
                }
            }
        }

这是一个非常无助的异常,你可能会认为有某种检查会抛出一个更有用的异常,也许我会在有时间的时候提交一个补丁。