• C#生成PDF文件流


    1。设置字体

    1 static BaseFont FontBase = BaseFont.CreateFont("C:\WINDOWS\FONTS\STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    2         static iTextSharp.text.Font bodyFont = new iTextSharp.text.Font(FontBase, 12);
    3         static iTextSharp.text.Font titleFont = new iTextSharp.text.Font(FontBase, 18);
    4         static iTextSharp.text.Font paragraphFont = new iTextSharp.text.Font(FontBase, 15);
    5         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;
            }

  • 相关阅读:
    linux ubuntu 现在显示的是ubuntu login
    stop-hbase.sh出现stopping hbasecat:/tmp/hbase-root-master.pid:No such file or directory
    hbase shell出现ERROR:Can't get master address from Zookeeper;znode data==null
    HADOOP:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    当Hadoop 启动节点Datanode失败解决
    数据挖掘步骤
    参加kaggle比赛
    招聘
    前端简历
    js和CSS3炫酷3D相册展示
  • 原文地址:https://www.cnblogs.com/albertay/p/6606305.html
Copyright © 2020-2023  润新知