C#程序可以输出Word文档,可以输出PDF格式文档,还可以输出PPT文档,此处使用WinForm窗体程序简略介绍PPT程序的输出。
工具/原料
VS2012
PPT模板文件
方法/步骤
1、首先获取PPT输出的引用dll,Aspose.Pdf.dll和Aspose.Slides.dll,添加引用到程序类中。创建一个窗口,添加按钮,点击进行输出PPT的操作。
2、双击按钮添加点击事件,如果不要填充数据,则模板正常输出,如果填充数据,则书写填充数据代码;按钮代码如下:privatevoidbutton6_Click(objectsender,EventArgse){//读取模板PPTAspose.Slides.Presentationpres=newAspose.Slides.Presentation("测试模板.ppt");Aspose.Slides.Slidesslds=pres.Slides;stringA00s="1,2,3,4";//填充数据FillData(pres,A00s,"21");pres.Write("测试输出.ppt");MessageBox.Show("文件生成成功!");}
3、克隆复制模板页,代码如下:privatevoidFillData(Presentationpre,stringA00s,stringresumeType){Slidesslds=pre.Slides;intA00Start=0;intA00End=0;intj=1;if(resumeType=="22"){A00End=1;j=2;}//人员数量string[]arrids=A00s.Split(',');//按人数克隆模板ClonePersonBaseInfoSlide(pre,A00s,resumeType,1);if(arrids.Length>0){for(inti=0;i<arrids.Length;i++){//填充简历页内容intz=A00Start;while(z<=A00End){intk=j*i+z;FillMeetTopicData(pre,slds[k]);z+=1;}}}}
4、填充数据分为两步:是否需要克隆复制模板页,即模板输出一页或多页;对模板页进行数据填充
5、克隆复制模板页,代码如下:privatevoidCl艺皱麾酪onePersonBaseInfoSlide(Presentation禊诬娱飑pre,stringA00s,stringresumeType,intstart){string[]arrids=A00s.Split(',');//克隆模板/*************注意:PPT页码从1开始************//*************注意:PPT页码从1开始************//*************注意:PPT页码从1开始************/intstartPosition=start+1;intA00Start=start;intA00End=start;//拷贝页数intcopyEnd=1;if(resumeType=="22"){//如果是22,则拷贝两页copyEnd=2;}if(arrids.Length>=1){//从第二人开始,即复制基本信息页,也复制简历页for(inti=1;i<arrids.Length;i++){//记录人员的开始页码A00Start=startPosition;//克隆人员简历信息页intk=0;while(k<copyEnd){startPosition+=1;pre.CloneSlide(pre.Slides[k],startPosition);k+=1;}//记录人员的结束页码startPosition=pre.Slides.Count;A00End=startPosition;startPosition+=1;}}}
6、人员信息数据填充,代码如下:privatevoidFillMeetTopicDat瞢铍库祢a(Prese荏鱿胫协ntationpre,Aspose.Slides.Slidesld){Aspose.Slides.Shapessps=sld.Shapes;try{stringa=sld.FindShape("PersonPhoto")+"";if(a!=""){stringpicPath=@"DefaultPerson.jpg";if(!File.Exists(picPath)){picPath=@"DefaultPerson.jpg";}intpicPId=pre.Pictures.Add(newPicture(pre,picPath));((PictureFrame)sld.FindShape("PersonPhoto")).PictureId=picPId;}}catch(Exceptione){thrownewApplicationException(""+e);}foreach(Aspose.Slides.Shapespinsps){Aspose.Slides.TextFrametf=sp.TextFrame;if(tf!=null){if(tf.Text=="Name"||tf.Text=="Name1"){tf.Paragraphs[0].Portions[0].Text="胡XX,";}if(tf.Text=="XRZW"||tf.Text=="XRZW1"){tf.Paragraphs[0].Portions[0].Text="男,19XX年X月出生,中共党员,大学本科(四川XX大学XX工程专业),北京XXXX有限公司董事长,主要从事物联网大数据领域工作,参与项目X项,拥有实用新型专利X件、软件著作权X件。";}if(tf.Text=="SEX"||tf.Text=="SEX1"){tf.Paragraphs[0].Portions[0].Text="男";}if(tf.Text=="XMCY"||tf.Text=="XMCY1"){tf.Paragraphs[0].Portions[0].Text="中共党员,大学本科(四川XX大学XX工程专业),北京XXXX有限公司董事长,主要从事物联网大数据领域工作";}}}}