iTextSharp.dll我是在网上随便下载的一个,没注意版本。应该非常容易下载
命名空间
using iTextSharp.text; using iTextSharp.text.pdf;
设置pdf字体和封装标题文本字体大小
//字体读取的是windows系统宋体 BaseFont basefont = BaseFont.CreateFont("C:/Windows/Fonts/simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); iTextSharp.text.Font font = new Font(basefont, 10);//设置字体为宋体和大小 iTextSharp.text.Font font2 = new Font(basefont, 9);//设置字体为宋体和大小
将pdf文档设置为A4文本尺寸
//设置为A4尺寸 iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.A4, 50, 50, 30, 30);
下面开始pdf文档制作正文了
。。。
//内存流 MemoryStream stream = new MemoryStream(); //将内存流写入pdf PdfWriter.GetInstance(document, stream); document.Open(); //添加标题 document.AddTitle("设备评测报告"); Paragraph element = new Paragraph("凯泉设备评测报告", new Font(basefont, 16)); element.SpacingAfter = 15; //设置离后面内容的间距 element.Alignment = Element.ALIGN_CENTER; document.Add(element); //添加段落 Paragraph element4 = new Paragraph(" ", new Font(basefont, 15)); document.Add(element4); //添加图片 Image backImg = Image.GetInstance(img1); backImg.SetAbsolutePosition(400, 780); backImg.ScaleAbsolute(151f, 45f); document.Add(backImg); //pdf插入表格 PdfPTable table = new PdfPTable(4); table.WidthPercentage = 100;//设置表格宽度占用百分比 PdfPCell cell = new PdfPCell(new Phrase("一、设备信息", font)); cell.Colspan = 4; table.AddCell(cell); table.AddCell(new Phrase("设备名称",font2)); table.AddCell(new Phrase(projecName, font2)); table.AddCell(new Phrase("报告编号", font2)); table.AddCell(new Phrase(" ", font2)); table.AddCell(new Phrase("安装地址", font2)); table.AddCell(new Phrase(addres, font2)); table.AddCell(new Phrase("设备型号", font2)); table.AddCell(new Phrase(DevModel, font2)); table.AddCell(new Phrase("额定功率", font2)); table.AddCell(new Phrase(power, font2)); table.AddCell(new Phrase("扬程", font2)); table.AddCell(new Phrase(Lift, font2)); table.AddCell(new Phrase("累计运行时间", font2)); table.AddCell(new Phrase(" ", font2)); table.AddCell(new Phrase("累计投运时间", font2)); table.AddCell(new Phrase(" ", font2)); document.Add(table); //结束pdf段落 .Close(); byte[] fileBytes = stream.GetBuffer(); stream.Close(); stream.Dispose(); return File(fileBytes, "application/pdf", "设备评测报告" + "(" + kai + ")" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf");
这样一个完整的pdf文档就成功了。pdf文档有利有弊,不可修改的安全性是利也是弊。
这是第一次尝试用itextsharp制作pdf,勉强完成了工作需求,做下记录总结,但是自己还是有一个疑问,在网上也没有找到合适的解决方案。
像图片有定位可以在文档上定位插入, itextsharp插入 段落,就是文本。如何能够定位插入,是否有好的解决方案,有好的方法能在评论区分享就太好了。
时间: 2024-11-10 18:56:43