C#生成PDF文件 此代码未测试
[C#] 纯文本查看 复制代码
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");
}
|