C# 生成pdf

8/3/2015来源:C#应用人气:1536

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");        }