我有一个类使用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文件:
答案 0 :(得分:2)
IOException
表示您正在尝试打开名为“.pdf”的文件。可以预期该文件名为“somefile.pdf”,但现在您只有点和扩展名 pdf 。您确定这是您要阅读的文件的名称吗?你确定你的代码是正确的吗?
请注意,iText类并未真正抛出异常。 PdfReader使用C#类试图打开文件,而C#类告诉你无法找到该文件。这可能意味着两件事:
您可以通过编写一些不使用iText将文件读入字节数组的代码来检查这一点。如果失败了,你就找到了问题。