不支持颜色深度

问题描述:

我使用iTextSharp版本5.5.2.0,并尝试加载附加的pdf示例058780-02.pdf我在ImageRenderInfo.GetImage()方法中得到一个异常,“PdfImageObject”未返回并且带有消息说“颜色深度1不被支持”。 有什么建议吗? 谢谢, Abedellatif不支持颜色深度

+1

PDF规范限定了自己的位图图像格式,这是非常灵活的,特别是关于支持的色彩空间。 'ImageRenderInfo.GetImage()'试图以与正常图像格式兼容的方式导出它。由于pdf位图格式的极端灵活性,这并非总是可以忠实的。 Itext不会尝试制造不忠实的出口。你的PDF似乎是这样的情况。因此,你会得到例外。 – mkl

+0

感谢您的评论。你认为有一种解决方法可以使用iTEXT加载这样的PDF吗? –

+0

你可以实现一个itext的加法,它可以处理你的文件。 IIRC您的图像是黑白模型,颜色深度为1的灰度。应该可以将它扩展为完整的灰度图像或甚至彩色图像。 – mkl

我固定它,修改iTextSharp的源代码PdfImageObjectFindColorspace在222线的方法添加

if (PdfName.CALGRAY.Equals(tyca) || PdfName.DEVICEGRAY.Equals(tyca)) { 
    stride = (width * bpc + 7)/8; 
    pngColorType = 0; 
}