C# 使用iTextSharp从PDF文件提取文本时,我遇到了以下错误:“;找不到图像数据或EI”;

C# 使用iTextSharp从PDF文件提取文本时,我遇到了以下错误:“;找不到图像数据或EI”;,c#,itextsharp,C#,Itextsharp,当我使用下面的代码使用iTextSharp从PDF文件中提取文本时,我遇到了一个错误:“找不到图像数据或EI”,而调试代码时发现该错误出现在某些页面,但不是所有页面,然后进一步调查,还发现pdf中一般有两种图像类型xObject图像和内联图像,使用下面的代码内联图像无法处理。在本期的其他类似帖子中,很少有评论建议使用最新版本(5.5.0)itextsharp,我也这么做了,但运气不好。我的基本目的是提取页面中的文本,而不是图像。如何处理内联图像,或者如何仅提取文本,而不考虑页面的图像类型 for

当我使用下面的代码使用iTextSharp从PDF文件中提取文本时,我遇到了一个错误:“找不到图像数据或EI”,而调试代码时发现该错误出现在某些页面,但不是所有页面,然后进一步调查,还发现pdf中一般有两种图像类型xObject图像和内联图像,使用下面的代码内联图像无法处理。在本期的其他类似帖子中,很少有评论建议使用最新版本(5.5.0)itextsharp,我也这么做了,但运气不好。我的基本目的是提取页面中的文本,而不是图像。如何处理内联图像,或者如何仅提取文本,而不考虑页面的图像类型

for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
PdfContentByte pdfData = pdfStamper.GetUnderContent(page);
LocTextExtractionStrategy its = new LocTextExtractionStrategy();
pdfData = pdfStamper.GetUnderContent(page);

string extractedTextInCurrentPage=PdfTextExtractor.GetTextFromPage(pdfReader, page, its);//In this line exception is throwing
} 
for(int page=1;page请共享您的PDF

这就是为什么:

您的PDF包含一个内联图像。内联图像在ISO-32000-1中有问题,但我个人认为该问题将在ISO-32000-2中解决(对于PDF 2.0,预计在2017年)

在ISO-32000-1中,内联图像以
BI
运算符开始,后跟一些参数。图像字节的长度不是这些参数之一。实际图像字节由
ID
EI
运算符括起

软件解析PDF语法需要搜索这些运算符,通常做得很好:查找
BI
,然后获取
ID
EI
之间的字节。但是:当遇到
EI
是图像字节一部分的图像时,该怎么办

这几乎从未发生过,但据我们所知,这是一个问题,我们在最近的iText版本中通过将
ID
EI
之间的字节转换为图像解决了这一问题。如果失败,iText将继续搜索下一个
EI
。如果iText没有找到
EI
参数,您将得到您输入的异常开

这是一个繁琐的过程,作为编写PDF标准的ISO委员会的成员,我在规范中引入了一个新的内联图像参数:
/L
参数将通知解析器
ID
EI
运算符之间的准确字节数将内联图像保持在4KB以下的建议变成了规范:在PDF 2.0中,内联图像超过4096字节是非法的。当然,这对你没有帮助。PDF 2.0还不存在。我在ISO委员会的工作只是从长远角度帮助解决了这个问题

从短期来看,我们已经编写了一个解决向我们报告的PDF问题的解决方案,但显然,您发现了一个无法解决问题的PDF。如果您希望我们解决问题,您必须共享该PDF。

请共享您的PDF

这就是为什么:

您的PDF包含一个内联图像。内联图像在ISO-32000-1中有问题,但我个人认为该问题将在ISO-32000-2中解决(对于PDF 2.0,预计在2017年)

在ISO-32000-1中,内联图像以
BI
运算符开始,后跟一些参数。图像字节的长度不是这些参数之一。实际图像字节由
ID
EI
运算符括起

软件解析PDF语法需要搜索这些运算符,通常做得很好:查找
BI
,然后获取
ID
EI
之间的字节。但是:当遇到
EI
是图像字节一部分的图像时,该怎么办

这几乎从未发生过,但据我们所知,这是一个问题,我们在最近的iText版本中通过将
ID
EI
之间的字节转换为图像解决了这一问题。如果失败,iText将继续搜索下一个
EI
。如果iText没有找到
EI
参数,您将得到您输入的异常开

这是一个繁琐的过程,作为编写PDF标准的ISO委员会的成员,我在规范中引入了一个新的内联图像参数:
/L
参数将通知解析器
ID
EI
运算符之间的准确字节数将内联图像保持在4KB以下的建议变成了规范:在PDF 2.0中,内联图像超过4096字节是非法的。当然,这对你没有帮助。PDF 2.0还不存在。我在ISO委员会的工作只是从长远角度帮助解决了这个问题

从短期来看,我们已经编写了一个解决向我们报告的PDF问题的解决方案,但显然,您发现了一个无法解决问题的PDF。如果您希望我们解决问题,您必须共享该PDF。

请共享您的PDF

这就是为什么:

您的PDF包含一个内联图像。内联图像在ISO-32000-1中有问题,但我个人认为该问题将在ISO-32000-2中解决(对于PDF 2.0,预计在2017年)

在ISO-32000-1中,内联图像以
BI
运算符开始,后跟一些参数。图像字节的长度不是这些参数之一。实际图像字节由
ID
EI
运算符括起

软件解析PDF语法需要搜索这些运算符,通常做得很好:查找
BI
,然后获取
ID
EI
之间的字节。但是:当遇到
EI
是图像字节一部分的图像时,该怎么办

这几乎从未发生过,但据我们所知,这是一个问题,我们在最近的iText版本中通过在