JAVA不使用POI给Word文档添加水印
程序員在開發項目時,經常需要給一些圖片、文件添加水印,但往往代碼編寫復雜,只能是先將文件上傳再調用Graphics類才能實現這一功能。但是最無奈的是這個類只能給圖片添加水印,而無法通過程序給Word文件添加水印,那如何實現這一功能呢,下面我就來和大家分享一下一種簡單的實現方法吧。
第一步:拷貝文件到WEB項目的“WEB-INF/lib”目錄下。拷貝PageOffice示例中下的“WEB-INF/lib”路徑中的pageoffice.cab和pageoffice.jar到新建項目的“WEB-INF/lib”目錄下。
第二步:修改WEB項目的配置文件。將如下代碼添加到配置文件中:
<!--?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.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>
<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>/sealp_w_picpath.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>123456</param-value>
</context-param>
<!--?PageOffice?End?-->
第三步:添加引用。在WEB項目的WebRoot目錄下添加動態頁面AddWaterMark.jsp。在該頁面后臺代碼中
添加自定義標簽庫:“<%@?taglib?uri="http://java.pageoffice.cn"?prefix="po"%>”引入PageOffice類庫:“<%@page?import=”com.zhuozhengsoft.pageoffice.*?,com.zhuozhengsoft.pageoffice.wordwriter.*”%>”。
在HTML頁面的<body>中添加PageOffice引用:“<po:PageOfficeCtrlid="PageOfficeCtrl1"></po:PageOfficeCtrl>”,并設置控件所在層(<div></div>)的高和寬。
第四步:編寫打開文件的代碼。在AddWaterMark.jsp的后臺頁面,利用PageOfficeCtrl控件在線打開Word文檔,代碼如下:
//********************卓正PageOffice組件的使用**********************
PageOfficeCtrl?poCtrl1?=?new?PageOfficeCtrl(request);
poCtrl1.setServerPage("poserver.do");?//此行必須
WordDocument?doc?=new?WordDocument();
//添加水印,設置水印的內容
doc.getWaterMark().setText("PageOffice開發平臺");
poCtrl1.setWriter(doc);
String?filePath?=?"doc/test.doc";//相對路徑
poCtrl1.webOpen(filePath,?OpenModeType.docNormalEdit,?"張三");
poCtrl1.setTagId("PageOfficeCtrl1");?//此行必須
?
說明:webOpen()方法中的第一個參數為:要打開的文件路徑,既可是相對路徑也可是絕對路徑,例如:d:/aaa/111.doc;
如上所述,輕松簡單的就給Word文檔添加上了水印
方案總結:
上述的示例主要是借助了PageOffice開發平臺的PageOfficeCtrl控件,利用該控件還可實現Word文檔內容的編輯、保存、提交、添加手寫批注、加蓋電子印章、Word文檔到PDF文檔的轉換等功能。另外,在PageOffice平臺下還可實現Excel、PPT、PDF等文檔的在線打開、編輯保存等等各種操作,很好地解決了開發OA系統的程序員的一些列技術難題。?
轉載于:https://blog.51cto.com/6949400/1201552
總結
以上是生活随笔為你收集整理的JAVA不使用POI给Word文档添加水印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jw player相关JS插件
- 下一篇: CCNP自学之路——eigrp--1