0

我有一个损坏的 .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;
}

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

4

1 回答 1

0

我相信一个try-catch街区对你来说应该足够了。只需包装有问题的代码以捕获任何异常,然后循环将继续进行。

于 2012-09-24T10:03:52.740 回答