0

iTextSharpを使用してPDFファイルから画像を抽出するクラスがあります。

スキャンマシンで生成されたPDFでテストしましたが、正常に動作しました。

次に、ファックス機で生成されたPDFでテストしたところ、IOException:.pdfがファイルまたはリソースとして見つかりませんでした。

ファックス機のPDFで動作しなかった理由がわかりません。iTextSharpはファックス機などからのPDFをサポートしていませんか?

どんな考えでもありがたいです。ありがとう

編集

public List<Image> ExtractImagesFromFax(string sourcePdf)
    {
        var imgList = new List<Image>();

        try
        {                
            var pdfReader = new PdfReader(sourcePdf); //Error is here ...

            for (var i = 0; i <= pdfReader.XrefSize - 1; i++)
            {
                //code here
            }
            pdfReader.Close();                
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return imgList;
    }

iTextSharp.text.pdf.PdfReaderでPDFを読み込もうとしましたが、IOExceptionが発生したため、先に進むことができませんでした(ファックス機で生成されたPDFでのみ発生しました)。

PDFファイル:

4

1 に答える 1

2

IOException、「。pdf」という名前のファイルを開こうとしていることを示しています。ファイルの名前は「somefile.pdf」であると予想されますが、現在はドットと拡張子pdfしかありません。これが読みたいファイルの名前でよろしいですか?コードが正しいことを確認しますか?

例外は実際にはiTextクラスによってスローされないことに注意してください。PdfReaderはファイルを開こうとしているC#クラスを使用しており、ファイルが見つからないことを通知するのはそのC#クラスです。これは2つのことを意味します:

  1. 正しいパスを使用していません。
  2. 作成したアプリケーションには、そのファイルにアクセスするための十分な権限がありません。

これを確認するには、iTextを使用せずにファイルをバイト配列に読み込むコードを記述します。それが失敗した場合、あなたはあなたの問題を見つけました。

于 2013-03-04T11:53:32.327 に答える