首页>代码>java通过jacob插件把图片插入word文档并且打印>/jacob将图片插入word并且打印/WordBean/src/com/lqw/controller/WordBean.java
package com.lqw.controller;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class WordBean {
	//将图片插入word文档
	/**
	 * 
	 * @param strings 图片集合
	 * @param savapath 新建word存放路径
	 */
		public static void createWordFile(String[] strings, String savapath) {     
			ComThread.InitSTA();
			ActiveXComponent app = new ActiveXComponent("Word.Application");// 启动word  
	        try {     
	            app.setProperty("Visible", new Variant(false));// 设置word不可见  
	            Dispatch docs = app.getProperty("Documents").toDispatch();     
	            Dispatch doc = Dispatch.call(docs, "Add").toDispatch();     
	            Dispatch selection = Dispatch.get(app, "Selection").toDispatch();
	    		Dispatch image = Dispatch.get(selection, "InLineShapes").toDispatch();
	    		Dispatch alignment = Dispatch.get(selection, "ParagraphFormat").toDispatch();// 段落格式 
	    		Dispatch wordContent = Dispatch.get(doc, "Content").toDispatch();
	    		Dispatch.call(selection, "InsertAfter", "这里是一个段落的内容");//插入一个段落
	    		Dispatch.put(alignment, "Alignment", "1"); // (1:置中 2:靠右 3:靠左)
	    		for(String st:strings){
	    		Dispatch.call(image, "AddPicture",st);
	    		}
	    		Dispatch.call(Dispatch.call(app, "WordBasic").getDispatch(),     
	                    "FileSaveAs", savapath);
	    		//printer(savapath);
	    		Variant f = new Variant(false);
	            Dispatch.call(doc, "save");
			     Dispatch.call(doc,"Close" ,f);
			      doc=null;
	        } catch (Exception e) {     
	            e.printStackTrace();     
	        } finally {   
	        	ComThread.Release();
	        	//app.invoke("Quit", new Variant[] {});     
	            app.safeRelease();     
	        }     
	    } 
		
		   /**
		    * 需要打印的word路径
		    * @param path
		    */
		   //打印文档
			public static void printer(String path){
				//String path="C://Users//Administrator//Desktop//歌曲//999.doc";
				 ComThread.InitSTA();
				 ActiveXComponent wd = new ActiveXComponent("Word.Application");
				    try {
				     // 不打开文档
				     Dispatch.put(wd, "Visible", new Variant(false));
				     Dispatch document = wd.getProperty("Documents")
				       .toDispatch();
				     // 打开文档
				     Dispatch doc = Dispatch.invoke(document, "Open",
				       Dispatch.Method, new Object[] {path},
				       new int[1]).toDispatch();
				     // 开始打印
				     if (doc != null) {
				      Dispatch.call(doc, "PrintOut");
				      //增加以下三行代码解决文件无法删除bug
				      Dispatch.call(doc,"save");
				      Dispatch.call(doc,  "Close" ,  new  Variant(true));
				      doc=null;
				     }
				     wd.invoke("Quit", new Variant[] {});
				     wd=null;
				    } catch (Exception e){
				     e.printStackTrace();
				    } finally {
				     // 始终释放资源
				     ComThread.Release();
				    }
			}
		public static void main(String[] args) {
			String[] strings=new String[]{"C:\\Users\\Administrator\\Desktop\\img\\1.jpg","C:\\Users\\Administrator\\Desktop\\img\\1.jpg","C:\\Users\\Administrator\\Desktop\\img\\1.jpg"};
			createWordFile(strings,"C:\\Users\\Administrator\\Desktop\\img\\tess.doc");	
			//openAnExistsFileTest();// 打开一个存在 的文件
				System.out.println("插入成功");
		}
}
最近下载更多
nanprivate  LV1 2021年3月19日
longdad  LV1 2020年2月20日
luohaipeng  LV23 2019年12月3日
低调人  LV38 2019年8月3日
zhangdd1991  LV1 2019年7月16日
news_2019  LV2 2019年7月3日
wx19941125  LV12 2019年6月25日
听雨楼  LV9 2019年5月22日
DawnWalker  LV19 2018年12月14日
john93  LV15 2018年12月11日
最近浏览更多
qwertyui惊鸿  LV7 2023年3月17日
荣》Cowboy  LV12 2022年4月2日
2252536772  LV21 2022年2月17日
mudai88 2021年12月1日
暂无贡献等级
zzzzzz520  LV3 2021年8月27日
小马兼职 2021年4月29日
暂无贡献等级
nanprivate  LV1 2021年3月19日
spring123spring  LV5 2021年2月17日
LiXin1994  LV1 2020年12月9日
oo3534  LV2 2020年10月10日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友