【问题标题】:While extracting text from PDF file using iTextSharp, I am getting this error: "Could not find image data or EI"使用 iTextSharp 从 PDF 文件中提取文本时,出现此错误:“找不到图像数据或 EI”
【发布时间】:2013-12-05 12:22:22
【问题描述】:

使用 iTextSharp 从 PDF 文件中提取文本时,我收到此错误:“找不到图像数据或 EI”

此错误发生在仅包含图像的特定页面上。

可能是因为我试图提取文本而不检查页面中是否有任何文本内容?

【问题讨论】:

  • InlineImageParseException("Could not find image data or EI") 在解析未由 EndImage 标记正确关闭的内联图像时抛出(或者其内容以某种方式出现乱码以使 iText 错过该标记)。能否提供文件进行分析?
  • 对不起,伙计们.. 这是非常机密的文件,所以我无法与您分享。如果您找到任何解决方案,请告诉我。谢谢
  • 您使用的是哪个版本的 iTextSharp?有人说这在 5.0.6 中已修复 itext-general.2136553.n4.nabble.com/… 否则我为您看到的唯一两个解决方案是修复 PDF 或使用 try/catch 进行包装
  • 我正在使用 iTextSharp 5.4.4.0.. 我已经用 try/catch 块进行了包装..然后我要去 5.0.6。如果有任何问题,请告诉您。感谢您的快速回复...非常感谢..

标签: c# itextsharp


【解决方案1】:

PDF 规范中没有很好地指定内嵌图像。图像数据应包含在IDEI 运算符之间。但是图像数据本身有可能包含“EI”。 在 iText(Sharp) 中读取图像数据,直到遇到 <whitespace>EI<whitespace>。但是,有些 PDF 以 EI<whitespace> 作为内联图像数据的结尾。对于那些内嵌图像,iText(Sharp) 会抛出此异常。

如果这是您的 PDF 的问题,您可以通过在此处将 InlineImageUtils.ParseInlineImageSamples() 中的 found == 1 更改为 found <= 1 来解决它: http://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/src/core/iTextSharp/text/pdf/parser/InlineImageUtils.cs#l337

【讨论】:

    【解决方案2】:

    这是因为电脑分辨率太高,转载使用较低的分辨率。没关系,但基本配置文件仍然来自源代码。也就是说支持多种电脑分辨率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 2014-06-06
      相关资源
      最近更新 更多