C#代码实现PDF文档操作类
本文纯干货,贴上PDF文档操作类C#代码,需要添加iTextSharp.dll引用才可以正常通过编译。
废话不多说了,直接给大家贴代码了。
代码如下:
usingSystem.IO; usingiTextSharp.text; usingiTextSharp.text.pdf; namespaceDotNet.Utilities { ///<summary> ///PDF文档操作类 ///</summary> //------------------------------------调用-------------------------------------------- //PDFOperationpdf=newPDFOperation(); //pdf.Open(newFileStream(path,FileMode.Create)); //pdf.SetBaseFont(@"C:\Windows\Fonts\SIMHEI.TTF"); //pdf.AddParagraph("测试文档(生成时间:"+DateTime.Now+")",15,1,20,0,0); //pdf.Close(); //------------------------------------------------------------------------------------- publicclassPDFOperation { #region构造函数 ///<summary> ///构造函数 ///</summary> publicPDFOperation() { rect=PageSize.A4; document=newDocument(rect); } ///<summary> ///构造函数 ///</summary> ///<paramname="type">页面大小(如"A4")</param> publicPDFOperation(stringtype) { SetPageSize(type); document=newDocument(rect); } ///<summary> ///构造函数 ///</summary> ///<paramname="type">页面大小(如"A4")</param> ///<paramname="marginLeft">内容距左边框距离</param> ///<paramname="marginRight">内容距右边框距离</param> ///<paramname="marginTop">内容距上边框距离</param> ///<paramname="marginBottom">内容距下边框距离</param> publicPDFOperation(stringtype,floatmarginLeft,floatmarginRight,floatmarginTop,floatmarginBottom) { SetPageSize(type); document=newDocument(rect,marginLeft,marginRight,marginTop,marginBottom); } #endregion #region私有字段 privateFontfont; privateRectanglerect;//文档大小 privateDocumentdocument;//文档对象 privateBaseFontbasefont;//字体 #endregion #region设置字体 ///<summary> ///设置字体 ///</summary> publicvoidSetBaseFont(stringpath) { basefont=BaseFont.CreateFont(path,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED); } ///<summary> ///设置字体 ///</summary> ///<paramname="size">字体大小</param> publicvoidSetFont(floatsize) { font=newFont(basefont,size); } #endregion #region设置页面大小 ///<summary> ///设置页面大小 ///</summary> ///<paramname="type">页面大小(如"A4")</param> publicvoidSetPageSize(stringtype) { switch(type.Trim()) { case"A4": rect=PageSize.A4; break; case"A8": rect=PageSize.A8; break; } } #endregion #region实例化文档 ///<summary> ///实例化文档 ///</summary> ///<paramname="os">文档相关信息(如路径,打开方式等)</param> publicvoidGetInstance(Streamos) { PdfWriter.GetInstance(document,os); } #endregion #region打开文档对象 ///<summary> ///打开文档对象 ///</summary> ///<paramname="os">文档相关信息(如路径,打开方式等)</param> publicvoidOpen(Streamos) { GetInstance(os); document.Open(); } #endregion #region关闭打开的文档 ///<summary> ///关闭打开的文档 ///</summary> publicvoidClose() { document.Close(); } #endregion #region添加段落 ///<summary> ///添加段落 ///</summary> ///<paramname="content">内容</param> ///<paramname="fontsize">字体大小</param> publicvoidAddParagraph(stringcontent,floatfontsize) { SetFont(fontsize); Paragraphpra=newParagraph(content,font); document.Add(pra); } ///<summary> ///添加段落 ///</summary> ///<paramname="content">内容</param> ///<paramname="fontsize">字体大小</param> ///<paramname="Alignment">对齐方式(1为居中,0为居左,2为居右)</param> ///<paramname="SpacingAfter">段后空行数(0为默认值)</param> ///<paramname="SpacingBefore">段前空行数(0为默认值)</param> ///<paramname="MultipliedLeading">行间距(0为默认值)</param> publicvoidAddParagraph(stringcontent,floatfontsize,intAlignment,floatSpacingAfter,floatSpacingBefore,floatMultipliedLeading) { SetFont(fontsize); Paragraphpra=newParagraph(content,font); pra.Alignment=Alignment; if(SpacingAfter!=0) { pra.SpacingAfter=SpacingAfter; } if(SpacingBefore!=0) { pra.SpacingBefore=SpacingBefore; } if(MultipliedLeading!=0) { pra.MultipliedLeading=MultipliedLeading; } document.Add(pra); } #endregion #region添加图片 ///<summary> ///添加图片 ///</summary> ///<paramname="path">图片路径</param> ///<paramname="Alignment">对齐方式(1为居中,0为居左,2为居右)</param> ///<paramname="newWidth">图片宽(0为默认值,如果宽度大于页宽将按比率缩放)</param> ///<paramname="newHeight">图片高</param> publicvoidAddImage(stringpath,intAlignment,floatnewWidth,floatnewHeight) { Imageimg=Image.GetInstance(path); img.Alignment=Alignment; if(newWidth!=0) { img.ScaleAbsolute(newWidth,newHeight); } else { if(img.Width>PageSize.A4.Width) { img.ScaleAbsolute(rect.Width,img.Width*img.Height/rect.Height); } } document.Add(img); } #endregion #region添加链接、点 ///<summary> ///添加链接 ///</summary> ///<paramname="Content">链接文字</param> ///<paramname="FontSize">字体大小</param> ///<paramname="Reference">链接地址</param> publicvoidAddAnchorReference(stringContent,floatFontSize,stringReference) { SetFont(FontSize); Anchorauc=newAnchor(Content,font); auc.Reference=Reference; document.Add(auc); } ///<summary> ///添加链接点 ///</summary> ///<paramname="Content">链接文字</param> ///<paramname="FontSize">字体大小</param> ///<paramname="Name">链接点名</param> publicvoidAddAnchorName(stringContent,floatFontSize,stringName) { SetFont(FontSize); Anchorauc=newAnchor(Content,font); auc.Name=Name; document.Add(auc); } #endregion } }
毛票票友情提醒需要注意点:需要添加iTextSharp.dll引用才可以正常通过编译。