com.zhuozhengsoft.pageoffice.wordwriter
类 WordDocument

java.lang.Object
  继承者 com.zhuozhengsoft.pageoffice.wordwriter.WordDocument

public class WordDocument
extends java.lang.Object

WordDocument 类代表一个Word文档,用来动态输出数据到Word文档并且控制其文档格式及编辑功能。

WordDocument 对象是PageOffice开发平台定义的Word数据输出对象,可作为 PageOfficeCtrl.SetWriter 方法的参数或 FileMakerCtrl.SetWriter 方法的参数。

版本:
2.0
作者:
北京卓正志远软件有限公司

构造方法摘要
WordDocument()
          初始化 WordDocument 类的新实例。
 
方法摘要
 DataRegion createDataRegion(java.lang.String newDataRegionName, DataRegionInsertType insertType, java.lang.String relativeDataRegionName)
          创建一个新的数据区域,并返回 DataRegion 对象。
 Template getTemplate()
          获取 Template 对象。
 WaterMark getWaterMark()
          获取 WaterMark 对象。
 DataRegion openDataRegion(java.lang.String dataRegionName)
          打开指定的数据区域,并返回 DataRegion 对象。
 DataTag openDataTag(java.lang.String dataTagName)
          打开具有指定特征字符串文本的数据标签对象。
 void setDisableWindowDoubleClick(boolean disableWindowDoubleClick)
          设置是否禁止当前Word窗口的鼠标双击。
 void setDisableWindowRightClick(boolean disableWindowRightClick)
          设置是否禁止当前Word窗口的鼠标右键菜单。
 void setDisableWindowSelection(boolean disableWindowSelection)
          设置是否禁止用户在当前Word窗口进行选取文档内容的操作。
 void setEnableAllDataRegionsEditing(boolean enableAllDataRegionsEditing)
          设置是否将文档中所有DataRegion设置成可编辑区域。
 java.lang.String toString(java.lang.String enc)
          获取类名。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

WordDocument

public WordDocument()
             throws java.lang.Exception,
                    java.io.IOException
初始化 WordDocument 类的新实例。

抛出:
java.lang.Exception
java.io.IOException
方法详细信息

setDisableWindowDoubleClick

public void setDisableWindowDoubleClick(boolean disableWindowDoubleClick)
设置是否禁止当前Word窗口的鼠标双击。

参数:
disableWindowDoubleClick - 默认值是 false。

setDisableWindowRightClick

public void setDisableWindowRightClick(boolean disableWindowRightClick)
设置是否禁止当前Word窗口的鼠标右键菜单。

参数:
disableWindowRightClick - 默认值是 false。

setDisableWindowSelection

public void setDisableWindowSelection(boolean disableWindowSelection)
设置是否禁止用户在当前Word窗口进行选取文档内容的操作。

参数:
disableWindowSelection - 默认值是 false。

setEnableAllDataRegionsEditing

public void setEnableAllDataRegionsEditing(boolean enableAllDataRegionsEditing)
设置是否将文档中所有DataRegion设置成可编辑区域。

参数:
enableAllDataRegionsEditing - 默认值是 false。

getWaterMark

public WaterMark getWaterMark()
获取 WaterMark 对象。

返回:
WaterMark 对象。

getTemplate

public Template getTemplate()
获取 Template 对象。

返回:
Template 对象。

toString

public java.lang.String toString(java.lang.String enc)
                          throws java.io.IOException
获取类名。

返回:
类名。
抛出:
java.io.IOException

openDataRegion

public DataRegion openDataRegion(java.lang.String dataRegionName)
                          throws java.lang.Exception,
                                 java.io.IOException
打开指定的数据区域,并返回 DataRegion 对象。

下面的示例展示如何使用 SaveDataPage 属性。

示例代码 1:展示如何调用 OpenDataRegion 方法打开数据区域,并且填充数据到Word文档指定位置处。

在运行本代码前,请手动打开test.doc文档,在相应的位置处插入书签"PO_CompanyName" 和 "PO_ProductName"。

 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 poCtrl1.setServerPage("poserver.do"); // 此行必须
 WordDocument doc = new WordDocument();
 doc.openDataRegion("CompanyName").setValue("卓正软件");
 doc.openDataRegion("ProductName").setValue("PageOffice");
 poCtrl1.setWriter(doc);
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docReadOnly, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

示例代码 2:展示如何将Word文档设置为Form表单输入视图,如何设置可编辑数据区域。此例中,只有CompanyName和ProductName位置处的内容是可编辑的,文档其他部分都是只读的。

如果需要约束用户输入规范的值,可以定义数据区域单击事件 PageOfficeCtrl.JsFunction_OnWordDataRegionClick,用户点击该数据区域时可弹出选择框选取用户需要的值。

在运行本代码前,请手动打开test.doc文档,在相应的位置处插入书签"PO_CompanyName" 和 "PO_ProductName"。

 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 poCtrl1.setServerPage("poserver.do"); // 此行必须
 WordDocument doc = new WordDocument();
 DataRegion dataRegion = doc.openDataRegion("CompanyName");
 dataRegion.setValue("卓正软件");// 数据区域可以赋初值
 dataRegion.setEditing(true);// 用户可输入
 doc.openDataRegion("ProductName").setEditing(true);// 用户可输入
 poCtrl1.setWriter(doc);
 poCtrl1.setSaveDataPage("savedata.jsp");
 poCtrl1.setJsFunction_OnWordDataRegionClick("OnWordDataRegionClick()");
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docSubmitForm, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
dataRegionName - DataRegion 的名称。
返回:
返回 DataRegion 对象。
抛出:
java.lang.Exception
java.io.IOException
另请参见:
com.zhuozhengsoft.pageoffice.wordreader.WordDocument.openDataRegion()方法中的示例代码,学习如何编写savedata.jsp获取文档保存时提交的用户输入内容。

createDataRegion

public DataRegion createDataRegion(java.lang.String newDataRegionName,
                                   DataRegionInsertType insertType,
                                   java.lang.String relativeDataRegionName)
                            throws java.lang.Exception,
                                   java.io.IOException
创建一个新的数据区域,并返回 DataRegion 对象。

调用此方法可以轻松地在指定的数据区域之前或之后创建新的数据区域并对新数据区域赋值或控制。

RelativeDataRegionName一般是文档中已存在的用户已预先定义的数据区域,但是RelativeDataRegionName还可以使用PageOffice开发平台预留的两个特殊数据区域:[HOME]和[END]。 [HOME]和[END]不需用户打开文档手动定义,它们分别代表文档的开始光标位置和结束光标位置。

如果当前文档是空白文档,一个数据区域都不存在,使用[HOME]和[END]可以从空白文档生成一个图文并茂的格式文档。

示例代码:展示如何调用 createDataRegion 方法创建新的数据区域,并且填充数据到新的数据区域。新数据区域"NewProductName"位于"ProductName"数据区域之前。

在运行本代码前,请手动打开test.doc文档,在相应的位置处插入书签"PO_CompanyName" 和 "PO_ProductName"。

 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 poCtrl1.setServerPage("poserver.do"); // 此行必须
 
 WordDocument doc = new WordDocument();
 doc.openDataRegion("CompanyName").setValue("卓正软件");
 doc.openDataRegion("ProductName").setValue("PageOffice");
 DataRegion drNewProduct = doc.createDataRegion("NewProductName", DataRegionInsertType.Before, "ProductName");
 drNewProduct.setValue("卓正ZoomSeal电子签章系统");
 
 poCtrl1.setWriter(doc);
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docReadOnly, "张三"); //只读打开
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
newDataRegionName - 新建 DataRegion 的名称。注意:应当确保不与文档中已存在的数据区域同名。
insertType - 新建 DataRegion 的插入方式。
relativeDataRegionName - 相对 DataRegion 的名称。
返回:
返回 DataRegion 对象。
抛出:
java.lang.Exception
java.io.IOException

openDataTag

public DataTag openDataTag(java.lang.String dataTagName)
                    throws java.lang.Exception,
                           java.io.IOException
打开具有指定特征字符串文本的数据标签对象。

数据标签对象,代表Word文档中具有此特征字符串的所有文本区域。

示例代码 :展示如何调用 OpenDataTag 方法打开数据标签,并且填充数据到Word文档指定位置处。

在运行本代码前,请手动打开test.doc文档,在相应的位置处插入特征文本"{CompanyName}" 和 "{ProductName}"。

 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 poCtrl1.setServerPage("poserver.do"); // 此行必须
 WordDocument doc = new WordDocument();
 doc.openDataTag("{CompanyName}").setValue("卓正软件");
 doc.openDataTag("{ProductName}").setValue("PageOffice");
 poCtrl1.setWriter(doc);
 poCtrl1.webOpen("doc/test.doc", OpenModeType.docReadOnly, "张三");
 poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
 

参数:
dataTagName - DataTag 的名称。
返回:
返回 DataTag 对象。
抛出:
java.lang.Exception
java.io.IOException