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 に答える