這pdf顯示在我的Firefox非常好,但在C#
程序使用我5.4.4 itextsharp
寫的,我用的PdfImageObject
的GetDrawingImage
方法,我也得到一個grabled圖像。itextsharp 5.4.4 - GetDrawingImage以這種方式解碼這個圖像 - 爲什麼?
我用iTextSharp的以下列方式:
PdfReader reader = new PdfReader(filename);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
ImageRenderListener listener = new ImageRenderListener();
parser.ProcessContent(pageNumber, listener);
凡ImageRenderListener
是IRenderListener
,它實現在以下方式RenderImage
方法:
public void RenderImage(ImageRenderInfo renderInfo)
{
PdfImageObject image = renderInfo.GetImage();
PdfObject obj = image.Get(PdfName.FILTER);
PdfName filter = null;
if (obj is PdfName)
{
filter = (PdfName)obj;
}
else if (obj is PdfArray)
{
foreach(var o in (PdfArray)obj)
{
if (o is PdfName)
{
filter = o as PdfName;
break;
}
}
}
if (filter != null)
{
System.Drawing.Image drawingImage = image.GetDrawingImage();
...
...
...
}
繪圖圖像被存儲在聽者然後畫到屏幕等...
我試圖理解這一點,我得到的過濾器我s /CCITTFaxDecode
但streamContentType
是不知何故png
,有人可以啓發我在這個問題上?
Thanx提前。
*'filter'是一個**/CCITTFaxDecode **,但'streamContentType'是某種方式的** png *** - 一個iText圖像提取結果*可以是png或tiff,具體取決於顏色圖像的深度,*參見「PdfImageObject.decodeImageBytes」的文檔;這就是說,iText(或圖像數據)似乎存在一個問題,因爲在我的測試設置中,PDF的外觀會出現問題。 – mkl
@mkl thanx的解釋,無論如何,我的意圖是要問爲什麼iTextSharp使這PDF看起來破碎,當與其他工具,它看起來很好... – dhg