pageoffice 获取书签对象_pageoffice 书签 - CSDN
精华内容
参与话题
  • pageoffice使用

    万次阅读 多人点赞 2016-09-26 17:44:44
    需要用到的jar包: pageoffice.jar 外部软件: office 2007 准备工作: 1.在xml下配置一个本地磁盘路径,作为保存新建的word保存的路径 D:\JAVA\kinggene\admin\workflow\wordTemp\form\doc\ //seq_word_path为配置...

    需要用到的jar包: pageoffice.jar

    外部软件: office 2007


    web-inf:

     <!-- PageOffice Begin -->
      <servlet>
        <servlet-name>poserver</servlet-name> 
        <servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class> 
      </servlet>
      <servlet-mapping> 
        <servlet-name>poserver</servlet-name> 
        <url-pattern>/poserver.zz</url-pattern> 
      </servlet-mapping> 
      <servlet-mapping> 
        <servlet-name>poserver</servlet-name> 
        <url-pattern>/poserver.do</url-pattern> 
      </servlet-mapping> 
      <servlet-mapping> 
    <servlet-name>poserver</servlet-name> 
    <url-pattern>/pageoffice.cab</url-pattern>
      </servlet-mapping>
      <servlet-mapping> 
    <servlet-name>poserver</servlet-name> 
    <url-pattern>/popdf.cab</url-pattern>
      </servlet-mapping>
      <servlet-mapping> 
    <servlet-name>poserver</servlet-name> 
    <url-pattern>/sealsetup.exe</url-pattern>
      </servlet-mapping>
      <servlet-mapping> 
         <servlet-name>poserver</servlet-name> 
         <url-pattern>/posetup.exe</url-pattern>
      </servlet-mapping>
    
    
      <servlet>
        <servlet-name>adminseal</servlet-name> 
        <servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class> 
      </servlet>
      <servlet-mapping> 
        <servlet-name>adminseal</servlet-name> 
        <url-pattern>/adminseal.do</url-pattern> 
      </servlet-mapping>
      <servlet-mapping> 
        <servlet-name>adminseal</servlet-name> 
        <url-pattern>/loginseal.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping> 
        <servlet-name>adminseal</servlet-name> 
        <url-pattern>/sealimage.do</url-pattern>
      </servlet-mapping>
      <mime-mapping>  
      <extension>mht</extension>  
      <mime-type>message/rfc822</mime-type>  
      </mime-mapping>
      <context-param>
      <param-name>adminseal-password</param-name>
      <param-value>111111</param-value>
      </context-param>
      <!-- PageOffice End -->
    


    准备工作:

    1.在xml下配置一个本地磁盘路径,作为保存新建的word保存的路径

    <seq_word_path>D:\JAVA\kinggene\admin\workflow\wordTemp\form\doc\</seq_word_path>  //seq_word_path为配置路径.读取到即可 利用xml读取

    2.java类 (bean and Service):

    用于查询模板列表 ,判断模板是否存在,进行模板的添加和更新

    在之后可以用于填充数据.拼凑表头和内容.


    使用pageofficectrl的时候,

    需要在JSP的表头引用

    <%@ page import="com.zhuozhengsoft.pageoffice.*,java.awt.*"%>
     <%@ taglib uri="http://java.pageoffice.cn" prefix="po"%> 

    控件需要显示的地方需要

      <po:PageOfficeCtrl id="PageOfficeCtrl1" />


    页面跳转的时候进行模板的查询和打开.


    pageoffice用到较多的类:

    1.PageOfficeCtrl 下的

    1.1 setCustomRibbon(java.lang.String value) 
              自定义Office2007/2010的Ribbon工具栏。 显示按钮.调用JS方法

    1.2   setSaveFilePage(java.lang.String saveFilePage) 
              设置 PageOffice 控件的文档保存页面。 跳转到SaveFile.jsp中才进行保存

    1.3   webOpen(java.lang.String documentURL, OpenModeType openMode, java.lang.String userName) 
              在线打开Office文档。

    1.4   setTagId(java.lang.String id) 
              此方法非常重要,在PageOfficeCtrl的后台Java调用代码末尾处必须调用。 id为控件显示ID "PageOfficeCtrl1"

    依次按照顺序设置下来.

    当编辑完成后.点击信息保存 setsavefilepage .触发save(). 

     document.getElementById("PageOfficeCtrl1").WebSave();//PageOfficeCtrl1保存到服务器

    之后流程会跳转到SaveFile.jsp


    2.savefile.jsp中也引用表头. 不过不需要po

    需要用到的类为:FileSaver

    FileSaver 类用来接收并保存 PageOfficeCtrl 或 FileMakerCtrl 控件提交的文档。

    2.1  getFormField(java.lang.String name) 
              获取 PageOfficeCtrl 控件所在页面指定的Form控件的值。

    2.2  saveToFile(java.lang.String saveAsFileName) 
              保存当前文档到服务器文件夹

    2.3 close()关闭

    依照顺序设置.


    如果还需要.可以调用server 的功能 保存到本地磁盘中.不要忘记关闭.

    ---------------------------------新建模板的思路-----------------------------------


    word载入到系统中进行替换时

    WordDocument 类代表一个Word文档,用来读取用户输入到Word文档中的数据。

      直接进入server中替换掉文档的书签页面.

    1.  openDataRegion(java.lang.String dataRegionName) 
              打开指定的数据区域,并返回 DataRegion 对象

    在方法中打开对应的书签区域.

    2.Table 类,代表PageOffice中定义的Excel表格对象。 调用 DataRegion.openTable 方法获取 Table 对象。

    将数据拼凑成表格模式.

    3. insertRowAfter(Cell cell) 
              在指定单元格所在行之后插入新行。

    4.    openCellRC(int row, int col) 
              打开指定的单元格,并返回 Cell 对象。

    opencellrc().setValue();进行存值

    展开全文
  • PageOffice动态插入Word表格

    千次阅读 2018-09-11 15:29:16
    在项目的开发中会遇到这样的需求:要求在生成word文件的时候,在文件的指定位置生成不定数目的表格,每个表格的结构是一样的,但是需要根据数据库...解决思路: 使用PageOffice实现这个需求模型的话需要一个模板te...

    在项目的开发中会遇到这样的需求:要求在生成word文件的时候,在文件的指定位置生成不定数目的表格,每个表格的结构是一样的,但是需要根据数据库中的数据记录对每个表格填充不同的数据。上面所说的这个需求的基本模型可以认为是在word文件的指定位置开始生成工资条,因为工资条的特点就是每个人的表格都一样,只是表格里面的信息不一样。

    解决思路: 使用PageOffice实现这个需求模型的话需要一个模板template.doc,模板template.doc中包含了一个设计好的工资条的表格,在用PageOffice打开正式的文件(比如:zhengshi.doc)之前,用PageOffice的WordDocument对象获取到zhengshi.doc中要插入表格的那个指定位置,然后用DataRegion对象插入模板文件template.doc到这个位置,再使用Table对象把数据库中的值填充到表格中,接着在这个表格后面重复前面插入表格的方法插入新的表格和数据,直到所有的表格都生成完毕。

    详细效果请参考PageOffice开发包中Samples4示例:
    三、10、插入Word表格模板动态生成工资条

    示例说明: 为了便于分析PageOffice 实现动态插入表格的核心代码,此演示打开了一个空白的Word文件作为正式文件来生成工资单。编写代码在文件末尾循环动态创建数据区域,并在数据区域中插入template.doc和填充数据,最终在word文件中生成所有员工的工资条信息。

    1. 模板template.doc 的表格如下:
    员工编号 员工姓名 所属部门 工资 发放时间
    .        
    1. 示意代码如下:
    WordDocument doc = new WordDocument();
    DataRegion data = null;
    Table table = null;
    int i = 0;
    while (rs.next()) {
    	data = doc.createDataRegion("reg" + i,DataRegionInsertType.Before, "[End]");
    	data.setValue("[word]doc/template.doc[/word]");//插入模板中表格到文件中
    	//给单元格赋值
    	table = data.openTable(1);
    	table.openCellRC(2, 1).setValue(rs.getString("ID"));	
    	table.openCellRC(2, 2).setValue(rs.getString("UserName"));
    	table.openCellRC(2, 3).setValue(rs.getString("DeptName"));
    	table.openCellRC(2, 4).setValue(rs.getString("Salary"));
    	table.openCellRC(2, 7).setValue(rs.getString("DateTime"));
    	i++;
    }
    
    1. 在111.doc中生成的表格如下:
    员工编号 员工姓名 所属部门 工资 发放时间
    0001 张志强 技术 8000 2013-2-2
    员工编号 员工姓名 所属部门 工资 发放时间
    0002 李志 技术 9000 2013-2-2

    ……

    展开全文
  • 使用PageOffice开发,常用的是Word书签来标记要插入数据的位置。 一般的开发人员使用Word比较少,可能不清楚Word书签是怎样插入的,下面简单的介绍一下插入书签的方法。 第一种方法: 把光标定位到需要标记数据...

    模板中必须标记好数据要插入的位置,这样才可以实现用程序插入数据到文件的相应位置,就是说要想生成文件,数据的位置必须用某种元素来标记出来。使用PageOffice开发,常用的是Word书签来标记要插入数据的位置。

    一般的开发人员使用Word比较少,可能不清楚Word书签是怎样插入的,下面简单的介绍一下插入书签的方法。

    第一种方法: 把光标定位到需要标记数据位置的地方,点Word菜单中的“插入”-“书签”,就会弹出一个标题为“书签”的对话框(如下图所示),输入新书签的名称,注意:书签名必须以字母、汉字、中文标点等开头,可以包含数字但中间不能有空格(用PageOffice开发的时候不推荐使用中文命名书签名)。点右侧的“添加”按钮,新的书签名将出现在下面的列表中。

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

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

    PageOffice示例代码中的模板在制作的时候,多采用第二中方法定义书签,插入书签之前会先写一个标示性的词语用中括号括起来,比如:[姓名],然后选中“[姓名]”,再插入书签。这样做的目的是便于在查看或编辑模板数据位置的时候一目了然。

    在使用PageOffice开发的过程中,为了避免出现与用户自己定义的书签出现冲突,要求插入的书签名称必须以“PO_”开头。注意是字母o,不是数字0。书签名是不区分大小写的也可以写成“po_”。在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有“po_”开头的书签才叫数据区域,请大家注意这点。

    编辑数据区域的注意事项


    鉴于Word书签的特点:书签可以相互包含、相邻的书签会互相干扰,插入数据区域的时候需要一些技巧和注意事项,在这里一并介绍一下。

    1. 插入数据区域前选择的文本内容如果不是故意要跨段的话,不要选择段落末尾的回车换行符“┙”。
    2. 如果说“[姓名]”就是要插入的数据区域的文本标示,那么请在“[”前和“]”后分别插入一个空格变成“ [姓名] ”,但是选择的数据区域标示的时候不要选择中括号前后的空格,只选择“[姓名]”,然后点Word菜单中的“插入”-“书签”,命名为:PO_name。
    3. 插入的任意的两个数据区域不能首尾相连。不允许前面的数据区域的末尾后面紧接着就是后一个数据区域的开始,中间连空格都没有,这是不允许的。
    4. 插入的数据区域不要互相包含。不推荐一个数据区域中完整的包含了另一个数据区域,这样做在程序生成文件的时候,不会出现错误,但是没意义,除了造成使用的混乱之外没有好处。
    展开全文
  • java调用pageoffice生成word

    千次阅读 2018-05-08 12:17:16
    一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的...jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加了...

    一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jacob、poi、java2word、itext。jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加了程序的复杂度。java2doc 是对 jacob 的封装,同样放弃!最后选定了用itext来导出word,网上一些资料说itext导出word功能太简单,通过试用之后,封装工具类,使用起来确实挺方便,但是导出的word文档在细节方面很难达到要求,比如:字体、行距、字体间距、首行缩进等。

    二、由于itext导出的word有各种各样的小问题,只能另找其他的解决方案,经过一个朋友推荐,可用PageOffice组件来导出word,其效果能与用户需求的word文档达到完美的一致,而且编程接口简单,调用很方便。总的来说就是制作模板(用PO_开头的书签作为数据占位符),然后编程调用PageOffice接口用真实数据替换模板中的占位符,最后生成word。下面看例子:

    1. 制作模板

      打开word模板插入书签:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示

      

    2. 编写代码

      调用PageOffice接口,给word模板填充数据生成word文档:

    复制代码
     1     // 声明变量存储从数据库中读取的数据 2     String  docName = "", docDept = "", docCause = "", docNum = "", docDate = ""; 3     // 数据库数据读取操作(不同的数据库用不同的代码) 4     ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id); 5     if (rs.next()) { 6         docName = rs.getString("Name"); 7         docDept = rs.getString("Dept"); 8         docCause = rs.getString("Cause"); 9         docNum = rs.getString("Num");10         docDate = rs.getString("SubmitTime");11     }12     rs.close();13     //创建PageOffice的WordDocument对象,操作Word文件14     WordDocument doc = new WordDocument();15     doc.openDataRegion("PO_name").setValue(docName);16     doc.openDataRegion("PO_dept").setValue(docDept);17     doc.openDataRegion("PO_cause").setValue(docCause);18     doc.openDataRegion("PO_num").setValue(docNum);19     doc.openDataRegion("PO_date").setValue(docDate);20     //创建PageOfficeCtrl对象打开文件21     PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);22     poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须23     //获取数据对象24     poCtrl1.setWriter(doc);25     // 打开文档26     poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
    复制代码

    3. 生成效果图

      

    三、 源码下载

      https://download.csdn.net/download/zi_wu_xian/10399345

    展开全文
  • WordDocument对象的CreateDataRegion方法是为了实现用程序动态的在Word文档中添加一个数据区域而设计的,使用此方法可以在生成Word文档的时候更灵活,支持更多复杂格式的文件生成。 CreateDataRegion方法说明: ...
  • PageOffice实现Word文档编辑区域控制

    千次阅读 2018-09-12 14:14:34
    PageOffice有一个功能就是操作数据区域,不但可以给文件中的数据区域(“PO_”开头的书签)赋值,还可以设置只读模式打开文件的时候哪些数据区域为可编辑模式。在打开文件之前先获取当前登录用户的权限...
  • 在做项目的过程中,...因此,PageOffice开发平台中就添加了此功能。 Table类的命名空间 Table类进行写入操作时 Java开发时命名空间为:com.zhuozhengsoft.pageoffice.wordwriter ASP.NET开发时命名空间为:Pa...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 因此,要想使用table,则必须在word文件中插入书签。而table的插入,既可以在Word模版中书签处手动插入:工具栏“插入”→“表格”,亦可以在程序中通过数据区域动态添加。 一、给Word模板中的Table手动插入书签。 ...
  • 使用PageOffice---给Word中的Table赋值

    千次阅读 2018-09-14 09:55:45
    因此,要想使用table,则必须在word文件中插入书签(数据区域,即书签的添加使用与实现方法在“导出word.doc”文档中已经详细介绍过了,此处不再赘述)。而table的插入,既可以在Word模版中书签处手动插入:工具栏...
  • 您只能通过调用 OpenDataRegion(String) 方法或 CreateDataRegion(String, DataRegionInsertType, String) 方法获得 DataRegion 对象。 什么是数据区域?数据区域是Word文档中具有 "PO_" 前缀命名的书签...
  • java调用PageOffice生成word

    千次阅读 2018-05-09 14:49:41
    一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的...jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加了...
  • 使用pageoffice实现预览和打印

    千次阅读 2017-10-13 11:24:52
    前置条件:需要一个word模板文档,需要输入文字的地方使用书签站位,书签格式为PO_xxxx 1.引入pageoffice(jsp) import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*;...
  • DataTag这一功能,是为了方便向Word文件中动态填充多个相同字段而存在的。 在向Word中动态填充数据时,如果多个位置都需要填充同一个数据,例如要填充...于是,PageOffice中就有了DataTag这一功能来实现这一效果。 ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • PageOffice 对Word文档的一键套红功能

    千次阅读 2013-11-14 13:58:36
     PageOffice的一键套红功能是用来实现在线编辑时能方便、快捷、简单地对Word文档进行套红操作。  在线编辑Word文档时,有时需要对Word文档进行套红设置,如有些政府文件、公司内部颁发的文件等等,使用红头模板对...
  • PageOffice能够在线编辑Word、Excel、PowerPoint文档,Word/Excel模板动态...PageOffice为软件开发者构建了一套简洁高效、统一的Office对象接口,同时无缝支持doc、docx、xls、xlsx、ppt、pptx等流行Office文件格式。
  • import com.zhuozhengsoft.pageoffice.FileSaver; import com.zhuozhengsoft.pageoffice.OpenModeType; import com.zhuozhengsoft.pageoffice.PageOfficeCtrl; import com.zhuozhengsoft.pageoffice.wordwriter....
  • PageOffice 使用Dome

    2019-08-07 19:27:52
    PageOffice是一款帮助Web应用系统或Web网站实现用户在线编辑Word、Excel、PowerPoint文档,Word/Excel模板动态填充,Word/Excel在线输入提交,系统数据导入导出word、excel文档的Office快速开发组件库,是目前把...
  • 一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求...jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加...
1 2 3 4 5 ... 20
收藏数 544
精华内容 217
关键字:

pageoffice 获取书签对象