好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#生成PDF文件流

本文实例为大家分享了C#生成PDF文件流的具体代码,供大家参考,具体内容如下

1、设置字体

?

static BaseFont FontBase = BaseFont.CreateFont( "C:\WINDOWS\FONTS\STSONG.TTF" , BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

     static iTextSharp.text.Font bodyFont = new iTextSharp.text.Font(FontBase, 12);

     static iTextSharp.text.Font titleFont = new iTextSharp.text.Font(FontBase, 18);

     static iTextSharp.text.Font paragraphFont = new iTextSharp.text.Font(FontBase, 15);

     static iTextSharp.text.Font linkFont = new iTextSharp.text.Font(FontBase, 12, Font.UNDERLINE, BaseColor.BLUE);

2.生成PDF文件流返回byte数组

public   byte [] DocCreate(System.Drawing.Image image, List<TreeNodes> list)      {        MemoryStream file =  new  MemoryStream();          string fileName = string.Empty;        Rectangle page = PageSize.A4;         float  y = page.Height;        Document document =  new  Document(page, 15, 15, 30, 30);         float  docWidth = page.Width - 15 * 2;         float  docHeight = page.Height - document.BottomMargin - document.TopMargin;        PdfWriter writer = PdfWriter.GetInstance(document, file);        writer.CloseStream =  false ;        writer.Open();        PdfContentByte cb = writer.DirectContent;        document.Open();         //标题         Paragraph title =  new  Paragraph( new  Chunk( "标题" , titleFont));        title.Alignment = Element.ALIGN_CENTER;        document.Add(title);         //图片         iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(image, ImageFormat.Png);         float  widthSzie = (page.Width - 30) / img.Width;         if  (widthSzie < 1)        {          img.ScalePercent(widthSzie * 100);        }        document.Add(img);         //文献出处         Paragraph p2 =  new  Paragraph( new  Chunk( "出处" , paragraphFont));        p2.IndentationLeft = indentationLeft;        document.Add(p2);        InitData(list); //初始化业务数据         CreateSteps(list, document, list.FirstOrDefault(it => it.PID == 0)); //添加业务数据          ////添加印章          //iTextSharp.text.Image whyz = iTextSharp.text.Image.GetInstance(whyzPath);          //whyz.ScalePercent(50);          //whyz.PaddingTop = 100;          //whyz.Alignment = Element.ALIGN_RIGHT;          //document.Add(whyz);          //添加日期         Paragraph createtime =  new  Paragraph( new  Chunk(DateTime.Now.ToLongDateString().ToString(), bodyFont));        createtime.Alignment = Element.ALIGN_RIGHT;         //createtime.SpacingBefore = -80;         createtime.PaddingTop = 200;          document.Add(createtime);            document.Close();        file.Position = 0;        MemoryStream newfile = SetWaterMark(file,  "水印内容" , docWidth, docHeight); //添加水印,见另外一篇博客         newfile.Position = 0; //重置流指针位置          byte [] bytes =  new   byte [newfile.Length];        newfile.Read(bytes, 0, bytes.Length);         return  bytes;      } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

dy("nrwz");

查看更多关于C#生成PDF文件流的详细内容...

  阅读:43次