资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
-1- 用用 C#制作制作 PDF 文件全攻略文件全攻略 前前 言言 PDF 文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作 PDF 格式文件的资料非常少. 本文主要说下本文主要说下 itext 生成生成 pdf 复杂复杂表格。并附上网上一个最全面的表格。并附上网上一个最全面的 itext教程教程. 效果如下图:效果如下图: 目 录 前 言. 1 第一部分 iText pdf 表格生成教程. 3 第一步:引用 itextsharp.dll . 4 第二步:创建 pdf 文档的实例. 4 第三步:定义字体,并打印标题.(处理中文字休) . 4 第三步:输入一个空行(换行) 。以分开标题与表格 . 5 -2- 第四步:定义基础表格 cell,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居中是没有效的水平居中有效) . 5 第 5 步:定义基本表格。定义图片 cell。 (生成表格时,从上而下生成。图片不能最后插入) . 5 第 6 步:多行多列的表格 . 5 第 7 步:插入图片. 6 第 7 步:插入一个空行(内容为空的表格) . 6 完整代码. 7 -3- 第一部分第一部分 iText pdf 表格生成教程表格生成教程 -4- 第一步:引用第一步:引用 itextsharp.dll using iTextSharp.text; using System.IO; using iTextSharp.text.pdf; 第二步:创建第二步:创建 pdf 文档的实例文档的实例 /创建一个iTextSharp.text.Document 对象的实例: Document document = new Document(); /为该Document 创建一个Writer 实例: PdfWriter.GetInstance(document, new FileStream(C:UsershechaoDesktop报名表格.pdf, FileMode.Create); /打开当前Document document.Open(); 第三步:定义字体,并打印标题第三步:定义字体,并打印标题.(处理中文字休处理中文字休) / SIMSUN.TTC:宋体和新宋体 /SIMKAI.TTF:楷体 /SIMHEI.TTF:黑体 /SIMFANG.TTF:仿宋体 BaseFont bftitle = BaseFont.CreateFont(C:WindowsFontsSIMHEI.TTF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font fonttitle = new Font(bftitle, 20); BaseFont bf1 = BaseFont.CreateFont(C:WindowsFontsSIMSUN.TTC,1, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font font1 = new Font(bf1, 12); Font fonttitle10 = new Font(bf1, 12); -5- Paragraph Title = new Paragraph(XXXX比赛, fonttitle); Title.SetAlignment(center); document.Add(Title); 第三步:输入一个空行(换行) 。以分开标题与表格第三步:输入一个空行(换行) 。以分开标题与表格 Paragraph nullp = new Paragraph( , fonttitle); nullp.Leading = 10; document.Add(nullp); 第第四四步:定义步:定义基础基础表格表格 cell,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居中是没有效的中是没有效的水平居中有效)水平居中有效) iTextSharp.text.pdf.PdfPCell cellmode = new iTextSharp.text.pdf.PdfPCell(); cellmode.Padding = 4F; (cellmode.PaddingBottom = 6F;/这里可以分别设置) 第第 5 步:定义基本表格步:定义基本表格。定义图片。定义图片 cell。 (生成表格时,从上而下生成。图片不能最后插入)。 (生成表格时,从上而下生成。图片不能最后插入) iTextSharp.text.pdf.PdfPCell cell_pic10 = new iTextSharp.text.pdf.PdfPCell(); / 创建单元格 iTextSharp.text.pdf.PdfPCell cell_pic20 = new iTextSharp.text.pdf.PdfPCell(); / 创建单元格 iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(8); / 表格有7列 table.SetWidths(new float 90,90,90,90,120,90,90,130 );/宽 第第 6 步:多行多列的表格步:多行多列的表格 cell = new iTextSharp.text.pdf.PdfPCell(); cell.Colspan = 1; cell.Rowspan = 4; -6- 第第 7 步:插入图片步:插入图片 cell = new iTextSharp.text.pdf.PdfPCell(); cell.Colspan = 1; cell.Rowspan = 4; System.Drawing.Image img_1 = System.Drawing.Image.FromFile(C:UsershechaoDesktop1.jpg); iTextSharp.text.Image img0 = iTextSharp.text.Image.GetInstance(img_1, iTextSharp.text.BaseColor.WHITE); if (img_1.Width cell.Width | img_1.Height cell.Height) img0.ScaleToFit(cell.Width, cell.Height); cell.FixedHeight = cell.MinimumHeight; cell.Image = img0; table.AddCell(cell); img_1.Dispose(); 第第 7 步:插入一个空行(内容为空的表格)步:插入一个空行(内容为空的表格) cell = new iTextSharp.text.pdf.PdfPCell(); cell.MinimumHeight = 60; cell.Colspan = 2; table.AddCell(cell); 最终效果如下图: -7- 完整代码完整代码 using System; using System.Collections.Generic; using System.Web; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; using System.Xml; using System.Data; namespace JetsenNet.JCAS.DataAccess -8- public class createpdf public void create(XmlDocument xmlDoc, string reqpath, JetsenNet.JCAS.DataAccess.dbaccess db, string filepath, string filename) string raceId = xmlDoc.DocumentElement.SelectSingleNode(Record/OWNER_ID).InnerText; DataSet raceData = db.getRaceData(raceId); XmlDocument raceDoc = new XmlDocument(); raceDoc.LoadXml(raceData.GetXml(); /第一步,创建一个iTextSharp.text.Document 对象的实例: Document document = new Document(); /第二步,为该Document 创建一个Writer 实例: /Stream reos=new Stream(); / FileStream fs = new FileStream(C:UsershechaoDesktopChap0101.pdf, FileMode.Create); /PdfWriter.GetInstance(document, reos); PdfWriter.GetInstance(document, new FileStream(filepath + filename, FileMode.Create); /第三步,打开当前Document document.Open(); /第四步,为当前Document 添加内容: / SIMSUN.TTC:宋体和新宋体 /SIMKAI.TTF:楷体 /SIMHEI.TTF:黑体 /SIMFANG.TTF:仿宋体 BaseFont bftitle = BaseFont.CreateFont(filepath + SIMHEI.TTF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font fonttitle = new Font(bftitle, 20); BaseFont bf1 = BaseFont.CreateFont(filepath + SIMSUN.TTC,1, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); -9- Font font1 = new Font(bf1, 12); Font fonttitle10 = new Font(bf1, 10); iTextSharp.text.pdf.PdfPCell cellmode = new iTextSharp.text.pdf.PdfPCell(); cellmode.PaddingBottom = 6F; string raceLevel = db.numberToString(int.Parse(raceDoc.DocumentElement.SelectSingleNode(Record/NUM_VAL1).InnerText); string title = 第 + raceLevel + 届 + raceDoc.DocumentElement.SelectSingleNode(Record/OBJ_NAME).InnerText; Paragraph Title = new Paragraph(title, fonttitle); Title.Alignment = 1; document.Add(Title); Paragraph nullp = new Paragraph( , fonttitle); nullp.Leading = 10; document.Add(nullp); iTextSharp.text.pdf.PdfPCell cell_pic10 = new iTextSharp.text.pdf.PdfPCell(); / 创建单元格 iTextSharp.text.pdf.PdfPCell cell_pic20 = new iTextSha
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号