java jacob调用打印,word,excel横向打印
- public static boolean printOfficeFile(File f) {
- if (f != null && f.exists()) {
- String fileNameString = f.getName();
- String postfixString = Utils.getPostfix(fileNameString);
- if (postfixString.equalsIgnoreCase("xls")
- || postfixString.equalsIgnoreCase("xlsx")) {
- /**
- * 功能:实现excel打印工作
- */
- ComThread.InitSTA();
- ActiveXComponent xl = new ActiveXComponent("Excel.Application");
- try {
- // System.out.println("version=" +
- // xl.getProperty("Version"));
- // 不打开文档
- Dispatch.put(xl, "Visible", new Variant(false));
- Dispatch workbooks = xl.getProperty("Workbooks")
- .toDispatch();
- // 打开文档
- Dispatch excel = Dispatch.call(workbooks, "Open",
- f.getAbsolutePath()).toDispatch();
- // 横向打印(2013/05/24)
- // Dispatch currentSheet = Dispatch.get(excel, "ActiveSheet")
- // .toDispatch();
- // Dispatch pageSetup = Dispatch
- // .get(currentSheet, "PageSetup").toDispatch();
- // Dispatch.put(pageSetup, "Orientation", new Variant(2));
- //每张表都横向打印2013-10-31
- Dispatch sheets = Dispatch.get((Dispatch) excel, "Sheets")
- .toDispatch();
- // 获得几个sheet
- int count = Dispatch.get(sheets, "Count").getInt();
- // System.out.println(count);
- for (int j = 1; j <=count; j++) {
- Dispatch sheet = Dispatch.invoke(sheets, "Item",
- Dispatch.Get, new Object[] { new Integer(j) },
- new int[1]).toDispatch();
- Dispatch pageSetup = Dispatch.get(sheet, "PageSetup").toDispatch();
- Dispatch.put(pageSetup, "Orientation", new Variant(2));
- Dispatch.call(sheet, "PrintOut");
- }
- // 開始打印
- if (excel != null) {
- //Dispatch.call(excel, "PrintOut");
- //添加下面三行代码解决文件无法删除bug
- Dispatch.call(excel, "save");
- Dispatch.call(excel, "Close" , new Variant(true));
- excel=null;
- }
- xl.invoke("Quit", new Variant[] {});
- xl=null;
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- } finally {
- // 始终释放资源
- ComThread.Release();
- }
- } else if (postfixString.equalsIgnoreCase("doc")
- || postfixString.equalsIgnoreCase("docx")) {
- 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[] { f.getAbsolutePath() },
- 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;
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- } finally {
- // 始终释放资源
- ComThread.Release();
- }
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
java jacob调用打印,word,excel横向打印的更多相关文章
- Java通过openOffice实现word,excel,ppt转成pdf实现在线预览
Java通过openOffice实现word,excel,ppt转成pdf实现在线预览 一.OpenOffice 1.1 下载地址 1.2 JodConverter 1.3 新建实体类PDFDemo ...
- Java jacob调用打印机打印word文档
前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...
- C#双面打印解决方法(打印word\excel\图片)
最近需要按顺序打印word.excel.图片,其中有的需要单面打印,有的双面.网上查了很多方法.主要集中在几个方式解决 1.word的print和excel的printout里设置单双面 2.prin ...
- Office批量打印助手(Excel 批量打印、Word 批量打印)
最新版本:1.0.6664.34636(更新日期:2018年3月31日) 下载地址:点击下载 程序简介: 本程序能批量打印 Word 文件.Excel 工作簿. 使用程序前请先安装 .NET Fra ...
- Java实现 蓝桥杯 历届试题 横向打印二叉树
问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放入那个位置. 比如,10 8 5 7 ...
- ASP.NET中数据库数据导入Excel并打印(2)
大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的.如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码: Private Sub Page_L ...
- Jacob调用COM组件总结,实例
转自:http://blog.csdn.net/whw6_faye/article/details/5418506 最近做了一个Java Jacob调用COM组件的东西,其中遇到了不少问题,现在把经验 ...
- 12、借助Jacob实现Java打印报表(Excel、Word)
12.使用Jacob来处理文档 Word或Excel程序是以一种COM组件形式存在的.如果能够在Java中调用相应组件,便能使用它的方法来获取文档中的文本信息.Jacob是一个JAVA到微软的COM接 ...
- java调用jacob生成pdf,word,excel横向
/* * 传进一个office文件的byte[]以及后缀,生成一个pdf文件的byte[] */ public byte[] jacob_Office2Pdf(byte[] srcFileBytes, ...
随机推荐
- Qt pro文件语法
在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...
- Android实例-IdHTTP下载(并实现自动安装)(XE10+小米2)
相关资料: 1.群号 383675978 2.运行时提示"connection closed gracefully"错误原因与解决 http://www.delphifans.co ...
- ecmall的物流配送体系改造
接触多了ecshop.ecmall原始逻辑的,一般都习惯以整单的方式统一计算运费,这是一种很简单的思路. 但淘宝多了,就发现,物流运费没有那么简单. 首先,每种商品单独设置运费的体系,或者叫运费模板: ...
- BZOJ2820 YY的GCD 莫比乌斯+系数前缀和
/** 题目:BZOJ2820 YY的GCD 链接:http://www.cogs.pro/cogs/problem/problem.php?pid=2165 题意:神犇YY虐完数论后给傻×kAc出了 ...
- 简单解决Ubuntu修改locale的问题
本文针对的问题是“Ubuntu 安装中文语言包”“Ubuntu Server中文问题”,“Ubuntu更改语言环境”,“Ubuntu locale的设定”,“cannot change local ...
- Android控件——7种形式的Android Dialog使用举例(转载)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...
- Centos7安装Apache Http服务器无法访问如何解决
1. 安装Apache组件 [root@mycentos shell]# yum install httpd 2. 安装成功后,检测有无httpd进程 [root@mycentos shell]# p ...
- web中用纯CSS实现筛选菜单
web中用纯CSS实现筛选菜单 本文我们来用纯css实现像淘宝宝贝筛选菜单那样的效果,例子虽然没有淘宝那样强大,不过原理差不多,如果花点心思也可以实现和淘宝一样的. 内容过滤是一个在Web上常见的一个 ...
- win10执行shell脚本
我们在win10如何执行以.sh文件的脚本呢? 开发步骤:1.写脚本b2q_goods.sh #!/bin/bashsql="select * from b2q.goods where go ...
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.W ...