0

我有一个类可以使用 iTextSharp 从 PDF 文件中提取图像。

我用扫描机生成的PDF进行了测试,效果很好。

然后,我用传真机生成的 PDF 进行测试,我得到一个 IOException: .pdf not found as file or resource。

我不知道为什么它不适用于传真机中的 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# 类告诉您找不到文件。这可能意味着两件事:

  1. 你没有使用正确的路径。
  2. 您编写的应用程序没有足够的权限来访问该文件。

您可以通过编写一些将文件读入字节数组而不使用 iText 的代码来检查这一点。如果失败了,你就发现了你的问题。

于 2013-03-04T11:53:32.327 回答