PageOffice 对Word文档的一键套红功能

第二种方法:选择几个文字、或一段文字、或者选择一段包含表格和图片的内容,为选中的内容指定书签的对象,然后执行第一种方法的同样操作,“插入”→“书签”……

注意:如果新插入位置或新对象采用的是已有的书签名,原有的书签将自动取消。

在使用PageOffice开发的过程中,为了避免出现与用户自己定义的书签出现冲突,要求插入的书签名称必须以“PO_”开头。注意是字母o,不是数字0。

在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有“PO_”(或者小写的“po_”)开头的书签才叫数据区域,请大家注意这点。

 

        

二、一键套红的具体使用

         PageOffice一键套红的使用方法简单地说就是通过程序先拷贝一份所想要的套红模板文件作为正式文件,然后再在线打开该正式文件,并且将文件的正文、发文日期、发文编 、发文人等等信息通过数据区域动态填充到正式文件中,即实现了一键套红,获得了添加了套红的正式的发文文件。

         PageOffice一键套红具体实现时只需要将         ①,通过调用WordDocument doc = new WordDocument();    

    DataRegion sTextS =doc.OpenDataRegion(“PO_STextS”);// 打开数据区域

    sTextS.Value = “[word]doc/test.doc[/word]”;//把正文文件插入到正式文件中

    DataRegion copies =doc.OpenDataRegion(“PO_Copies”);

    copies.Value = “6”;

    数据区域值的类型可以是文本类型、         数据区域的具体使用方法请参见相应开发语言的开发帮助和开发示例包中的示例。

         ④,调用         另外,如果要保存套红后的正式发文文件,还可以通过设置         PageOffice一键套红的部分实现代码为:

         //Java实现代码

// 复制模板,命名为正式发文的文件名:zhengshi.doc

    fileName = “zhengshi.doc”;

    String templateName = request.getParameter(“mb”);// 获取选择的模版文件名称

    String templatePath = getServletContext().getRealPath(“TaoHong/doc/” + templateName);

    String filePath = getServletContext().getRealPath(“TaoHong/doc/” + fileName);

    copyFile(templatePath, filePath);//复制模板文件

    ……

    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);

    poCtrl1.setServerPage(request.getContextPath()+“/poserver.zz”); //此行必须

    poCtrl1.setSaveFilePage(“savefile.jsp”);//设置保存页面

    … …

    // 填充数据和正文内容到“zhengshi.doc”

    WordDocument doc = new WordDocument();

    DataRegion copies = doc.openDataRegion(“PO_Copies”);

    copies.setValue(“6”);

    DataRegion issueDept = doc.openDataRegion(“PO_IssueDept”);

    issueDept.setValue(开发部);

    DataRegion sTextS = doc.openDataRegion(“PO_STextS”);

    sTextS.setValue(“[word]doc/test.doc[/word]”); // 填充正文到数据区域

    DataRegion sTitle = doc.openDataRegion(“PO_sTitle”);

    sTitle.setValue(北京某公司文件);

    DataRegion topicWords = doc.openDataRegion(“PO_TopicWords”);

    topicWords.setValue(“Pageoffice套红);

    … …

    poCtrl1.setWriter(doc); // 不要忘记此行

    … …

    poCtrl1.webOpen(“doc/” + fileName, OpenModeType.docNormalEdit, 张三);//打开Word文件

    poCtrl1.setTagId(“PageOfficeCtrl1”); //此行必须

 

         //C#实现代码

   // 打开word文件

   private voidOpenWord(string fileName)

   {

       //*************卓正PageOffice组件的使用***************

       Session.Add(“fileName”,fileName);//保存word文件名称

       PageOfficeCtrl1.SaveFilePage = “Savefile.aspx”;//设置保存页面

       PageOfficeCtrl1.WebOpen(“doc/”+ fileName, PageOffice.OpenModeType.docNormalEdit,张三);//打开Word文件

   }

    ……

   // 套红

   protected voidBtnTaoHong_Click(object sender, EventArgs e)

   {

       //套红模板时,复制模板文件为正式发文文件zhengshi.doc),填充数据和正文文件正式发文文件

 

       //复制模板,命名为正式发文的文件名:zhengshi.doc

       string fileName = “zhengshi.doc”;

       mb = Request.Form[“templateName”];

       System.IO.File.Copy(Server.MapPath(“doc/” + mb),

                Server.MapPath(“doc/” + fileName), true);//拷贝文件

 

       //给正式发文的文件填充数据

       WordDocument doc = new WordDocument();

       DataRegion copies =doc.OpenDataRegion(“PO_Copies”);

       copies.Value = “6”;

       DataRegion sTextS =doc.OpenDataRegion(“PO_STextS”);

       sTextS.Value = “[word]doc/test.doc[/word]”;// 把正文文件插入到正式文件中

       DataRegion sTitle =doc.OpenDataRegion(“PO_sTitle”);

       sTitle.Value = 北京某公司文件;

       DataRegion topicWords =doc.OpenDataRegion(“PO_TopicWords”);

       topicWords.Value = “Pageoffice套红;

       … …

       PageOfficeCtrl1.SetWriter(doc); //不要忘记此行

 

       //打开word文件

       OpenWord(fileName);

   }

… …

         以上示例的完整代码,请参考相应开发语言的Samples示例包中综合演示中的第9个示例:“使用PageOffice实现模板套红(专业版、企业版)”。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年10月10日
下一篇 2013年10月10日

相关推荐