码迷,mamicode.com
首页 > 编程语言 > 详细

java 调用打印机打印文件

时间:2014-09-23 15:00:44      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:java

/**
	 * 进行打印
	 * 
	 * @param file
	 * @param saveFile
	 * @param preFix
	 * @param formatFile
	 * @return
	 * @throws NoOfficeException
	 */
	public static void doPrintDoc(File file) {

		if (file == null || !file.exists()) {
			return;
		}

		// 获取文件后缀名
		int index = file.getName().indexOf(".");
		String extName = file.getName().toUpperCase().substring(index + 1);

		String comApp = "Word.Application";
		String property = "Documents";

		// 如果是Word的话
		if (extName.equals("DOC") || extName.equals("DOCX") || extName.equals("WPS")) {
			comApp = "Word.Application";
			property = "Documents";

		} else if (extName.equals("XLS") || extName.equals("XLSX") || extName.equals("ET")) {
			comApp = "Excel.Application";
			property = "Workbooks";

		} else if (extName.equals("PPT") || extName.equals("PPTX") || extName.equals("DPS")) {
			comApp = "PowerPoint.Application";
			property = "Presentations";
		}

		// 初始化组件
		ComThread.InitSTA();

		// 定义组件对象
		ActiveXComponent axc = new ActiveXComponent(comApp);
		try {
			if (!property.equals("Presentations")) {
				Dispatch.put(axc, "Visible", new Variant(false));
			}
			Dispatch document = axc.getProperty(property).toDispatch();

			Dispatch doc = null;

			// 如果是PPT的话
			if (property.equals("Presentations")) {
				doc = Dispatch.call(document, "Open", file.getAbsolutePath(), true, true, false).toDispatch();
			} else {
				doc = Dispatch.invoke(document, "Open", Dispatch.Method, new Object[] { file.getAbsolutePath() }, new int[1]).toDispatch();
			}

			Dispatch.call(doc, "PrintOut");
			Dispatch.call(doc, "Close");
			if (!property.equals("Presentations")) {
				axc.invoke("Quit", new Variant[] {});
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			comApp = "";
			property = "";
			ComThread.Release();
		}
	}
需要的jar和dll下载路径http://download.csdn.net/detail/daixinmei/7962251
dll要放在windows/system32下,或者jdk安装目录的bin下

java 调用打印机打印文件

标签:java

原文地址:http://blog.csdn.net/daixinmei/article/details/39496859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!