asp.net 生成PDF方法
2018-06-17 20:24:27来源:未知 阅读 ()
今天转博客园看到有人发表了一篇生成PFd的文章,准备自己也留一份准备以后用到的时候方便调用;
首先去itextsharp网站下载控件(https://sourceforge.net/projects/itextsharp)
将下载后的控件引用到自己的项目里面,主要的bll文件为:itextsharp.dll文件
1、根据DataTable生成PDF文件
添加Itextsharp引用
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
应用代码
/// <summary> /// 转换数据表为PDF文档 /// </summary> /// <param name="Data">数据表数据</param> /// <param name="PDFFile">目标PDF文件全路径</param> /// <param name="FontPath">字体所在路径</param> /// <param name="FontSize">字体大小</param> /// <returns>返回调用是否成功</returns> public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize) { //初始化一个目标文档类 Document document = new Document(); //调用PDF的写入方法流 //注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create)); //打开目标文档对象 document.Open(); //创建PDF文档中的字体 BaseFont baseFont = BaseFont.CreateFont( FontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //根据字体路径和字体大小属性创建字体 Font font = new Font(baseFont, FontSize); //根据数据表内容创建一个PDF格式的表 PdfPTable table = new PdfPTable(datatable.Columns.Count); //遍历原table的内容 for (int i = 0; i < datatable.Rows.Count; i++) { for (int j = 0; j < datatable.Columns.Count; j++) { table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), font)); } } //在目标文档中添加转化后的表数据 document.Add(table); //关闭目标文件 document.Close(); //关闭写入流 writer.Close(); return true; } /// <summary> /// 生成Dataset /// </summary> /// <returns></returns> private DataSet GetSet() { DataSet ds = new DataSet(); string sql = "select * from T_AjaxXML"; string Config = ConfigurationManager.ConnectionStrings["Config"].ConnectionString; using (SqlConnection cnn = new SqlConnection(Config)) { using (SqlCommand cmm = new SqlCommand(sql, cnn)) { SqlDataAdapter dapter = new SqlDataAdapter(cmm); dapter.Fill(ds); } } return ds; } 调用方法: ConvertDataTableToPDF(GetSet().Tables[0], Server.MapPath("~/Table.pdf"), "C:\\Windows\\Fonts\\simsun.ttc,1", 14);
2、根据文本内容生成PDF文件
private void CreateTxt(string txt, string filepath) { //创建文档对象 Document document = new Document(); //实例化生成的文档 PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create)); //打开文档 document.Open(); //在文档中添加文本内容 document.Add(new Paragraph(txt)); //关闭文档对象 document.Close(); }
3、生成页眉页脚(不过iTextSharp5.5这个版本没有了这个方法,麻烦亲们帮忙找一个)
private void CreatePDFheader(string filepath, string headertxt, string footertxt) { //创建文档对象 Document document = new Document(); // 创建文档写入实例 PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create)); PdfPageEventHelper hh = new PdfPageEventHelper(); // 添加页脚 HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true); footer.Border = Rectangle.NO_BORDER; document.Footer = footer; //打开文档内容对象 document.Open(); // 添加页眉 HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false); document.Header = header; //设计各页的内容 document.Add(new Paragraph("This is First Page")); //新添加一个页 document.NewPage(); //第2页中添加文本 document.Add(new Paragraph("This is Second Page")); // 重置页面数量 document.ResetPageCount(); //关闭文档对象 document.Close(); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:SQL索引问题
- 一秒可生成500万ID的分布式自增ID算法—雪花算法 (Snowflake 2020-01-07
- delphi使用Foxit Quick PDF Library读写pdf文本和图片 2019-05-13
- VS中生成网站和发布网站的区别 2018-06-21
- ASP.NET简单验证码 2018-06-21
- 【转】ASP.NET"正在中止线程"错误原因 2018-06-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash