您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > iTextSharp做C的PDF打印和
基于iTextSharp的PDF操作(PDF打印,PDF下载)-1-基于iTextSharp的PDF操作(PDF打印,PDF下载)准备1.iTextSharp的简介iTextSharp是一个移植于java平台的iText项目,被封装成c#的组件来用于C#生成PDF文档,目前,也有不少操作PDF的类库,(国产的有福盺的,免费试用,用于商业用途收费)但是功能普遍没有iText强大,而且使用没有iText广泛。还有他就是开源的。目前比较新的是5.5版本的。2.使用工具硬件:PC机:一台软件:Windows操作系统Isualstudio2013(可以是任意版本).NetframeWork4.5(可以是任意版本)iTextSharp5.5可以到官网下载(iTextSharp)下载后,解压得到iTextSharp.dll文件基于iTextSharp的PDF操作(PDF打印,PDF下载)-2-基本知识1.主要对象1).Document对象:Document对象主要用于操作页面的大小,就是页面的尺寸。页面的尺寸一般有以下几种:A0-A10,LEGAL,LETTER,HALFLETTER,_11x17,LEDGER,NOTE,B0-B5,ARCH_A-ARCH_E,FLSA和FLSE,例如,需要创建一个A4纸张大小的PDF文档:Documentdocument=newDocument(PageSize.A4);这个文档漠然是纵向的,如果满足不了你横向文档的需要,可以加上rotate属性。有的时候,我们需要生成特定颜色的,特定大小的PDF文档,可以使用下面的方法RectanglepageSize=newRectangle(120,520);//120*520规格pageSize.BackgroundColor=newColor(0xFF,0xFF,0xDE);//背景色Documentdocument=newDocument(pageSize);//新建Documen对象页边距:Documentdocument=newDocument(PageSize.A5,36,72,108,180);//默认单位为磅。2).PdfWriter对象:创建了Documen对象后,我们就要对PDF文档进行操作(合并,删除,更改,添加内容等)。这个时候必须创建PdfWriter对象实例。PdfWriter类对对象继承自iTextSharp.text.DocWriter抽象类。如果需要创建Ext文件,则需要iTextSharp.text.TeX.TeXWriter这个类。//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。基于iTextSharp的PDF操作(PDF打印,PDF下载)-3-PdfWriterwriter=PdfWriter.GetInstance(document,newFileStream(strFileName,FileMode.Create));如代码所示,创建成功了一个PDF的PdfWriter实例。FileMode.Create:表示如果目标文件不存在,则创建,如果已存在,则覆盖。FileMode.New表示新建,FileMode.Append表示追加,如果你是操作PDF模版,你可以使用Append。PdfPTable对象,我们需要用到的属性:///paramname=sdr_ContextList/param///paramname=title标题名称/param///paramname=fontpath_Title标题字体路径/param///paramname=fontsize_Title标题字体大小/param///paramname=fontStyle_Title标题样式/param///paramname=fontColor_Title标题颜色/param///paramname=fontpath_Col列头字体路径/param///paramname=fontsize_Col列头字体大小/param///paramname=fontStyle_Col列头字体样式/param///paramname=fontColor_Col列头字体颜色/param///paramname=col_Width表格总宽度/param///paramname=arr_Width每列的宽度/param///paramname=pdf_Filename在服务器端保存PDF时的文件名/param///paramname=FontPath正文字体路径/param///paramname=FontSize正文字体大小/param///paramname=fontStyle_Context正文字体样式/param///paramname=fontColor_Context正文字体颜色/param方法(长长的,可以封装成对象):publicvoidexp_Pdf(ListCustomersdr_Context,stringtitle,stringfontpath_Title,floatfontsize_Title,intfontStyle_Title,BaseColorfontColor_Title,stringfontpath_Col,floatfontsize_Col,intfontStyle_Col,BaseColorfontColor_Col,floatcol_Width,int[]arr_Width,stringpdf_Filename,stringFontPath,floatFontSize,intfontStyle_Context,BaseColorfontColor_Context)基于iTextSharp的PDF操作(PDF打印,PDF下载)-4-2.基本属性设置字体颜色等//在服务器端保存PDF时的文件名stringstrFileName=pdf_Filename+.pdf;//初始化一个目标文档类Documentdocument=newDocument(PageSize.A4.Rotate(),0,0,10,10);//调用PDF的写入方法流//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。PdfWriterwriter=PdfWriter.GetInstance(document,newFileStream(strFileName,FileMode.Create));//标题字体BaseFontbasefont_Title=BaseFont.CreateFont(fontpath_Title,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);Fontfont_Title=newFont(basefont_Title,fontsize_Title,fontStyle_Title,fontColor_Title);//表格列字体BaseFontbasefont_Col=BaseFont.CreateFont(fontpath_Col,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);Fontfont_Col=newFont(basefont_Col,fontsize_Col,fontStyle_Col,fontColor_Col);//正文字体BaseFontbasefont_Context=BaseFont.CreateFont(FontPath,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);基于iTextSharp的PDF操作(PDF打印,PDF下载)-5-Fontfont_Context=newFont(basefont_Context,FontSize,fontStyle_Context,fontColor_Context);3.打开文档//打开目标文档对象document.PageNumberdocument.Open();//添加标题Paragraphp_Title=newParagraph(title,font_Title);p_Title.Alignment=Element.ALIGN_CENTER;p_Title.IndentationLeft=200;p_Title.PaddingTop=300;p_Title.ExtraParagraphSpace=300;p_Title.SpacingAfter=100;document.Add(p_Title);4.生成表格//根据数据表内容创建一个PDF格式的表PdfPTabletable=newPdfPTable(5);//1table.TotalWidth=col_Width;//表格总宽度table.LockedWidth=true;//锁定宽度table.SetWidths(arr_Width);//设置每列宽度//构建列头//设置列头背景色table.DefaultCell.BackgroundColor=iTextSharp.text.BaseColor.LIGHT_GRAY;//设置列头文字水平、垂直居中table.DefaultCell.HorizontalAlignment=PdfPCell.ALIGN_CENTER;table.DefaultCell.VerticalAlignment=PdfPCell.ALIGN_MIDDLE;//告诉程序这行是表头,这样页数大于1时程序会自动为你加上表头。table.HeaderRows=1;基于iTextSharp的PDF操作(PDF打印,PDF下载)-6-table.AddCell(newPhrase(222222,font_Col));table.AddCell(newPhrase(222222,font_Col));table.AddCell(newPhrase(222222,font_Col));table.AddCell(newPhrase(222222,font_Col));table.AddCell(newPhrase(222222,font_Col));//添加数据//设置标题靠左居中table.DefaultCell.HorizontalAlignment=PdfPCell.ALIGN_LEFT;//设置表体背景色table.DefaultCell.BackgroundColor=BaseColor.WHITE;for(inti=0;isdr_Context.Count();i++){table.AddCell(newPhrase(sdr_Context[i].Id.ToString(),font_Context));table.AddCell(newPhrase(sdr_Context[i].Name,font_Context));table.AddCell(newPhrase(sdr_Context[i].Place,font_Context));table.AddCell(newPhrase(sdr_Context[i].Address,font_Context));table.AddCell(newPhrase(sdr_Context[i].Address,font_Context));}5.把表格加进文档document.Add(table);6.关闭文档//关闭目标文件document.Close();//关闭写入流writer.Close();7.直接打印预览MemoryStreamPDFData=newMemoryStream(data);基于iTextSharp
本文标题:iTextSharp做C的PDF打印和
链接地址:https://www.777doc.com/doc-2879900 .html