C#生成PDF文件流
本文实例为大家分享了C#生成PDF文件流的具体代码,供大家参考,具体内容如下
1、设置字体
staticBaseFontFontBase=BaseFont.CreateFont("C:\\WINDOWS\\FONTS\\STSONG.TTF",BaseFont.IDENTITY_H,BaseFont.EMBEDDED); staticiTextSharp.text.FontbodyFont=newiTextSharp.text.Font(FontBase,12); staticiTextSharp.text.FonttitleFont=newiTextSharp.text.Font(FontBase,18); staticiTextSharp.text.FontparagraphFont=newiTextSharp.text.Font(FontBase,15); staticiTextSharp.text.FontlinkFont=newiTextSharp.text.Font(FontBase,12,Font.UNDERLINE,BaseColor.BLUE);
2.生成PDF文件流返回byte数组
publicbyte[]DocCreate(System.Drawing.Imageimage,Listlist) { MemoryStreamfile=newMemoryStream(); stringfileName=string.Empty; Rectanglepage=PageSize.A4; floaty=page.Height; Documentdocument=newDocument(page,15,15,30,30); floatdocWidth=page.Width-15*2; floatdocHeight=page.Height-document.BottomMargin-document.TopMargin; PdfWriterwriter=PdfWriter.GetInstance(document,file); writer.CloseStream=false; writer.Open(); PdfContentBytecb=writer.DirectContent; document.Open(); //标题 Paragraphtitle=newParagraph(newChunk("标题",titleFont)); title.Alignment=Element.ALIGN_CENTER; document.Add(title); //图片 iTextSharp.text.Imageimg=iTextSharp.text.Image.GetInstance(image,ImageFormat.Png); floatwidthSzie=(page.Width-30)/img.Width; if(widthSzie<1) { img.ScalePercent(widthSzie*100); } document.Add(img); //文献出处 Paragraphp2=newParagraph(newChunk("出处",paragraphFont)); p2.IndentationLeft=indentationLeft; document.Add(p2); InitData(list);//初始化业务数据 CreateSteps(list,document,list.FirstOrDefault(it=>it.PID==0));//添加业务数据 ////添加印章 //iTextSharp.text.Imagewhyz=iTextSharp.text.Image.GetInstance(whyzPath); //whyz.ScalePercent(50); //whyz.PaddingTop=100; //whyz.Alignment=Element.ALIGN_RIGHT; //document.Add(whyz); //添加日期 Paragraphcreatetime=newParagraph(newChunk(DateTime.Now.ToLongDateString().ToString(),bodyFont)); createtime.Alignment=Element.ALIGN_RIGHT; //createtime.SpacingBefore=-80; createtime.PaddingTop=200; document.Add(createtime); document.Close(); file.Position=0; MemoryStreamnewfile=SetWaterMark(file,"水印内容",docWidth,docHeight);//添加水印,见另外一篇博客 newfile.Position=0;//重置流指针位置 byte[]bytes=newbyte[newfile.Length]; newfile.Read(bytes,0,bytes.Length); returnbytes; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。