2016-10-02 112 views
5

我使用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

回答

1

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

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