文档详情

C#使用itextsharp打印pdf的实现代码.docx

发布:2025-06-05约4.43千字共5页下载文档
文本预览下载声明

C#使用itextsharp打印pdf的实现代码

if(((num==PngImage.PNGID[0])(num2==PngImage.PNGID[1]))((num3==PngImage.PNGID[2])(num4==PngImage.PNGID[3])))

returnPngImage.GetImage(imgb);

if((num==0xd7)(num2==0xcd))

returnnewImgWMF(imgb);

if((num==0x42)(num2==0x4d))

returnBmpImage.GetImage(imgb);

if((((num==0x4d)(num2==0x4d))((num3==0)(num4==0x2a)))||(((num==0x49)(num2==0x49))((num3==0x2a)(num4==0))))

RandomAccessFileOrArrays=null;

s=newRandomAccessFileOrArray(imgb);

ImagetiffImage=TiffImage.GetTiffImage(s,1);

if(tiffImage.OriginalData==null)

tiffImage.OriginalData=imgb;

returntiffImage;

finally

if(s!=null)

s.Close();

thrownewIOException(MessageLocalization.GetComposedMessage(the.byte.array.is.not.a.recognized.imageformat));

}

该方法根据参数获取图片实例的方式比较多,例如:Image,PdfTemplate,PRIndirectReference,byte[],Stream,string,Uri等等,以上给出了根据Image和byte[]获取ItextSharp的image实例。

4.Image的ScaleAbsolute():设置图片信息。

publicvoidScaleAbsolute(floatnewWidth,floatnewHeight)

this.plainWidth=newWidth;

this.plainHeight=newHeight;

float[]matrix=this.Matrix;

this.scaledWidth=matrix[6]-matrix[4];

this.scaledHeight=matrix[7]-matrix[5];

this.WidthPercentage=0f;

}

以上代码可以看出,设置图片的信息主要包括高度、宽度、排列等信息。

5.Anchor类的Process()方法:重写链接的处理方法。

publicoverrideboolProcess(IElementListenerlistener)

boolflag=(this.reference!=null)this.reference.StartsWith(#);

boolflag2=true;

foreach(Chunkchunkinthis.Chunks)

if(((this.name!=null)flag2)!chunk.IsEmpty())

chunk.SetLocalDestination(this.name);

flag2=false;

if(flag)

chunk.SetLocalGoto(this.reference.Substring(1));

elseif(this.reference!=null)

chunk.SetAnchor(this.reference);

listener.Add(chunk);

returntrue;

catch(DocumentException)

returnfalse;

}

以上方法可以看到,该方法是在本类中被重写,用以处理链接的相关信息。

6.PageSize:设置纸张的类型。

publicclassPageSize

//Fields

publicstati

显示全部
相似文档