使用C#跳过pdf中损坏的页面

时间:2012-09-24 09:58:40

标签: c# asp.net .net pdf

我有一个损坏的.pdf文件。当我尝试打开文件时,它会在

上抛出异常
PdfReader pdfReader = new PdfReader(fileName);
如果页面上有任何错误,请

行。

  

对象引用未设置为对象的实例

完整代码:

public string ReadFile(string Filename)
{
    string fileName = Server.MapPath(@"PDFFiles//" + Filename);

    string pdfText = string.Empty;
    if (File.Exists(fileName1))
    {
        try
        {
            // Exception on this line
            PdfReader pdfReader = new PdfReader(fileName);

            for (int i = 1; i <= pdfreader.NumberOfPages; i++)
            {
                ITextExtractionStrategy itextextStrat = new pdf.parser.SimpleTextExtractionStrategy();
                PdfReader reader = new PdfReader(Filename);
                String extractText = PdfTextExtractor.GetTextFromPage(reader, i, itextextStrat);

                extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
                pdfText = pdfText + extractText;
                reader.Close();
            }
        }
        catch(Execption e)
        {
        }
    }

    return pdfText;
}

但是我需要循环遍历文件而没有例外。如果特定页面上有任何错误,我必须跳过它并转到下一页。它不应该抛出异常。怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

我相信try-catch块对您来说应该足够了。只需包装有问题的代码以捕获任何异常,无论如何都会继续循环。