iTextSharp不能处理由传真机生成的PDF文件

本文关键字:PDF 文件 传真机 不能 处理 理由 iTextSharp | 更新日期: 2023-09-27 18:02:20

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

我用扫描机生成的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;
    }

我试着阅读PDF的iTextSharp.text.pdf。PDF阅读器,但我得到IOException,所以我不能进一步(只发生与传真机生成的PDF)。

PDF文件:

  • 传真:https://www.box.com/s/xwwu5xziujay153y67rz

  • 扫描:https://www.box.com/s/9tlqqwixw1w9b2znh1j2

iTextSharp不能处理由传真机生成的PDF文件

IOException显示您正在尝试打开一个名为".pdf"的文件。有人会期望文件被命名为"somefile.pdf",但是现在你只有一个和扩展名pdf。您确定这是要读取的文件的名称吗?你确定你的代码是正确的吗?

注意,这个异常实际上不是由text类抛出的。PdfReader使用一个c#类来打开文件,正是这个c#类告诉你找不到文件。这可能意味着两件事:

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

您可以通过编写一些代码来检查这一点,该代码将文件读入字节数组而不使用iText。