PdfTextExtractor中的iTextSharp错误?

时间:2011-06-08 12:59:54

标签: c# pdf pdf-generation itextsharp

我刚开始尝试使用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,我显然不是null是一个int,如果reader为null我会期望一个ArgumentNullException。读者有页面因此它进入循环的事实。我只能认为这是某种错误。它是开源的,所以我可以尝试修复它,但我真的没有时间。有谁知道这里可能会发生什么,或者我如何解决它?

1 个答案:

答案 0 :(得分:4)

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

            }
        }

这是一个非常无益的例外,你会认为有某种检查会引发更有帮助的例外,也许我会在有空的时候提交补丁。