这个pdf在我的 Firefox 上显示得非常好,但是在我使用5.4.4C#
编写的程序中,我使用了 的方法,我得到了一个抓取的图像。itextsharp
GetDrawingImage
PdfImageObject
我通过以下方式使用了 itextsharp:
PdfReader reader = new PdfReader(filename);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
ImageRenderListener listener = new ImageRenderListener();
parser.ProcessContent(pageNumber, listener);
哪里ImageRenderListener
是 a 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();
...
...
...
}
绘图图像存储在侦听器中,然后绘制到屏幕等......
我试图理解这一点,我知道过滤器是 a/CCITTFaxDecode
但streamContentType
不知何故是 a png
,有人可以在这件事上启发我吗?