• C# 生成pdf


         Document doc = new Document();
                //粉丝名称
                string memberName = "";
                var detail = listDetails.FirstOrDefault();
                if (detail != null)
                {
                    ServiceRecord record = detail.ServiceRecord;
                    if (record != null)
                    {
                        Member m = record.Member;
                        if (m != null)
                        {
                            memberName = m.FirstName + " " + m.LastName;
                        }
                    }
                }
                try
                {
    
                    //step 2:创建一个writer用于监听Document以及通过PDF-stream指向一个文件
                    string pdfName = DateTime.Now.ToString("yyyyMMddHHmmss");
                    if (!Directory.Exists(Server.MapPath("~/Content/pdf/")))
                    {
                        Directory.CreateDirectory(Server.MapPath("~/Content/pdf/"));
                    }
                    string pdfPath = Server.MapPath(string.Format("~/Content/pdf/{0}.pdf", pdfName));
                    PdfWriter.GetInstance(doc, new FileStream(pdfPath, FileMode.Create));
                    pdfURL = Request.Headers["host"] + Url.Content(string.Format("~/Content/pdf/{0}.pdf", pdfName));
                    // step 3: 打开document
                    doc.Open();
    
                }
    //----------------
         doc.Add(CreateParagraphTxt(new List<string> { atc.Title }, num));
                                            doc.Add(CreateParagraphImg(atc.PictureUrl));
    
    //---------------------------------
            //创建文本段落
            private Paragraph CreateParagraphTxt(List<string> Listtxt, int num, bool isContent = true)
            {
                Paragraph phTxt = new Paragraph();//段落
                BaseFont bf = BaseFont.CreateFont("c://windows//fonts//simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                iTextSharp.text.Font font = new iTextSharp.text.Font(bf);
                phTxt.Font = font;
                if (num % 2 != 0)
                {
                    phTxt.Font.SetColor(80, 120, 169);
                }
                phTxt.SpacingAfter = 10;
                int fontSize = 15;
    
                foreach (var item in Listtxt)
                {
                    Chunk chunkTxt = new Chunk(item,
                  FontFactory.GetFont(FontFactory.COURIER, "UniGB-UCS2-H", BaseFont.EMBEDDED, fontSize));
                    if (isContent)
                    {
                        phTxt.IndentationLeft = 30;
                    }
    
                    phTxt.Add(chunkTxt);
                }
    
                return phTxt;
            }
    
    
            //创建图片段落
            private Paragraph CreateParagraphImg(string imgUrl)
            {
                if (System.IO.File.Exists(Server.MapPath(imgUrl)))
                {
                    Paragraph phImg = new Paragraph();//段落
                    iTextSharp.text.Image jpg1 = iTextSharp.text.Image.GetInstance(Server.MapPath(imgUrl));
                    jpg1.Alignment = Element.ALIGN_LEFT;
                    phImg.Add(jpg1);
                    return phImg;
                }
                return new Paragraph("Image Load failed");
            }
  • 相关阅读:
    Junit单元测试
    Stream流方法引用
    Stream流思想和常用方法
    算法
    函数式接口
    Zookeeper理解
    GreenPlum学习之(Share-nothing)架构
    链表反转问题
    KMP算法的java实现
    KMP详解之二
  • 原文地址:https://www.cnblogs.com/zjflove/p/pdf.html
Copyright © 2020-2023  润新知