Index: PdfContentsTokenizer.cpp
===================================================================
--- PdfContentsTokenizer.cpp	(revision 2033)
+++ PdfContentsTokenizer.cpp	(working copy)
@@ -243,46 +243,30 @@
     {
         c = m_device.Device()->GetChar();
     }
+	const char *strToFind = " EI ";		// CB 19.02.2021
+	int ic = 0;
+	while (strToFind[ic] && ((c = m_device.Device()->GetChar()) != EOF)) {
+		bool isW = PdfTokenizer::IsWhitespace(c);
+		if (strToFind[ic] == ' ' ? isW : c == strToFind[ic])
+			ic++;
+		else
+			ic = isW ? 1 : 0;
+		if (!isW) {
+			m_buffer.GetBuffer()[counter++] = c;
+			if (counter == static_cast<pdf_int64>(m_buffer.GetSize())) {	// image is larger than buffer => resize buffer
+				m_buffer.Resize(m_buffer.GetSize() * 2);
+			}
+		}
+	}
+	if (c == EOF)
+		return false;
+	m_device.Device()->Seek(-4, std::ios::cur); // put back " EI "
+	counter -= 4;
+	m_buffer.GetBuffer()[counter] = '\0';
+	rVariant = PdfData(m_buffer.GetBuffer(), static_cast<size_t>(counter));
+	reType = ePdfContentsType_ImageData;
+	m_readingInlineImgData = false;
+	return true;
+}
 
-    while((c = m_device.Device()->Look()) != EOF) 
-    {
-        c = m_device.Device()->GetChar(); 
-        if (c=='E' &&  m_device.Device()->Look()=='I') 
-        {
-            // Consume character
-            m_device.Device()->GetChar();
-            int w = m_device.Device()->Look();
-            if (w==EOF || PdfTokenizer::IsWhitespace(w)) 
-            {
-                // EI is followed by whitespace => stop
-                m_device.Device()->Seek(-2, std::ios::cur); // put back "EI" 
-                m_buffer.GetBuffer()[counter] = '\0';
-                rVariant = PdfData(m_buffer.GetBuffer(), static_cast<size_t>(counter));
-                reType = ePdfContentsType_ImageData;
-                m_readingInlineImgData = false;
-                return true;
-            }
-            else 
-            {
-                // no whitespace after EI => do not stop
-                m_device.Device()->Seek(-1, std::ios::cur); // put back "I" 
-                m_buffer.GetBuffer()[counter] = c;
-                ++counter;    
-            }
-        }
-        else 
-        {
-            m_buffer.GetBuffer()[counter] = c;
-            ++counter;
-        }
-        
-        if (counter ==  static_cast<pdf_int64>(m_buffer.GetSize())) 
-        {
-            // image is larger than buffer => resize buffer
-            m_buffer.Resize(m_buffer.GetSize()*2);
-        }
-    }
-    
-    return false;
-}
-};
+};
\ No newline at end of file
