- 在jacob 中可以通过以下代码想word中插入页眉页脚,但是在操作过程中使用模板中有多页的时候,只有第一页可以插入。是因为word 在打开页眉视图的时候只打开当前页的页眉,这是全局替换文本信息的代码。但是页眉页脚那块如果有分割的情况下,只会替换当页的页眉页脚。
/** * 全局替换文本 * @param findText * @param newText */ public void replaceAllText(String findText, String newText, String fontName, int size){ /****插入页眉页脚*****/ //取得活动窗体对象 Dispatch activeWindow = word.getProperty( "ActiveWindow").toDispatch(); //取得活动窗格对象 Dispatch activePane = Dispatch.get(activeWindow, "ActivePane").toDispatch(); //取得视窗对象 Dispatch view = Dispatch.get(activePane, "View").toDispatch(); /****设置页眉*****/ Dispatch.put(view, "SeekView", "9"); while (find(findText)){ Dispatch.put(selection, "Text", newText); moveStart(); } /****设置页脚*****/ Dispatch.put(view, "SeekView", "10"); while (find(findText)){ Dispatch.put(selection, "Text", newText); moveStart(); } Dispatch.put(view, "SeekView", new Variant(0));//恢复视图 moveStart(); while (find(findText)){ Dispatch.put(selection, "Text", newText); // putFontSize(selection, fontName, size); moveStart(); } }
如果想多页不同页眉的同时替换的话,需要每个页眉都要执行一遍。可以通过find查找定位页眉所在页位置如下代码所示:
@RequestMapping("/w") public void wirteWord(HttpServletResponse response){ WordUtil wt = new WordUtil(false); ComThread.InitSTA(); wt.openDocument(capyfilePath+date+".doc"); wt.replaceAllText("要替换的文字","替换后的文字", "", 1); wt.find("第二页"); wt.replaceAllText("要替换的文字","替换后的文字", "", 1); wt.find("第三页"); wt.replaceAllText("要替换的文字","替换后的文字", "", 1); wt.moveStart(); }
jacob word 页眉多页插入
最新推荐文章于 2021-08-23 14:57:48 发布