jacob word 页眉多页插入

2 篇文章 0 订阅
2 篇文章 0 订阅
  1. 在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();
    	}

     

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值