iTextSharp不适用于传真机生成的PDF?

时间:2013-03-04 11:01:13

标签: c# asp.net pdf itextsharp

我有一个类使用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文件:

1 个答案:

答案 0 :(得分:2)

IOException表示您正在尝试打开名为“.pdf”的文件。可以预期该文件名为“somefile.pdf”,但现在您只有和扩展名 pdf 。您确定这是您要阅读的文件的名称吗?你确定你的代码是正确的吗?

请注意,iText类并未真正抛出异常。 PdfReader使用C#类试图打开文件,而C#类告诉你无法找到该文件。这可能意味着两件事:

  1. 您没有使用正确的路径。
  2. 您编写的应用程序没有足够的权限来访问该文件。
  3. 您可以通过编写一些不使用iText将文件读入字节数组的代码来检查这一点。如果失败了,你就找到了问题。