`
mncc
  • 浏览: 54077 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Jcom组件操作Visio批量导出图片

    博客分类:
  • java
阅读更多

首先说一下这几天的流水账。。。。


    总算改完一个呼和的了。。。周六周日彻底的睡了两天。。。。结果周六去北京西一看火车票。。。提前20天的动车居然没票了。。。。狗日的。。。。。。郁闷。。。。。


    这周正式录数据。。。录得想哭呢。。。主要是格式不对。。。整理格式就要半天。。。。再加上地图又弄不好,好像是拿回来的数据缺个东西。。。哎。。。下次再去拿的时候一定要事先把需要的数据格式整理出来啊。。。。

。。。

    前几天在网上和CCAV小白还有宝宝两个以前的同学在网上聊了几句。。。被彻头彻尾的鄙视了。。。。意思是没有进取心之类的。。。。。。~~~~(>_<)~~~~


    相忘江湖的CCAV更厉害。。。我看他是想拿到北京户口以后立马跳槽。。。不过号称还有违约金。。。而且他的时间还有两年。。。。可怜啊。。。。。不过书这家伙硬气。。。。7000就走。。。我看他是突然发现养家糊口很费钱了。。。。。。。


  
另外一个宝宝直接去了一个给银行做项目的公司。。。每天在天津。。。。不过不知道具体是做什么。。内部管理系统?综合业务?卡部?信贷管理?基金投资管理?。。。因为原来参与过信贷管理系统的开发。。。。所以总感觉现在的银行管理很混乱。。。。。不过嘛。。。还是好啊。。。银行那种地方。。。穷的只剩下钱了。。。。


    宿舍里有个找工作的哥们儿挺逗。。。好像思维挺活跃。。。。找工作找的专业可谓是千变万化。。。从办公室管理到舞厅歌手。。。昨天居然还和我说想创业要开个食品企业。。。汗一下先。。。。


———————————————我是分割线————————————我是分割线—————————————————


      拿回来的数据有很多是MAPINFO和VISIO格式的数据,但是系统是要求上传成图片格式的,MAPINFO格式的转换成图片有人做了。。。可怜这个Visio的只能我弄了。。。郁闷。。。。到处找都找不到好的批量软件。。。打开VisualStudio看了看。。。痛哭流涕。。。俺又不会dot
net。。。只能用java了。。。。


  
     到网上找。。。在javaEye上看见有个人的代码写的很好。。。可惜找不到传说中的com.visio.IVApplication这些类。。到com4j里边找也找不到。。。后来便决定用jacob。。。不过正好在工程里看见有人用jcom转换word文档的程序。。。最后还是准备用jcom了。。。


    至于使用jcom.dll这个文件要放到哪里这个大家百度或者谷歌一下就知道了。。。


    代码:(部分)

	private void visioTest(String vsdFilePath, String outPath) {
		ReleaseManager rm = new ReleaseManager();
		IDispatch visioApp;
		try {
			// 调用Visio程序
			visioApp = new IDispatch(rm, "Visio.Application");
			// 为了方便程序调试,设置成了显示打开Visio,正式用改成false
			visioApp.put("Visible", new Boolean(true));
			IDispatch documents = (IDispatch) visioApp.get("Documents");
			// 打开文件
			IDispatch doc = (IDispatch) documents.method("open",
					new Object[] { vsdFilePath });
			// 得到所有的Pages
			IDispatch pages = (IDispatch) doc.get("Pages");
			// 得到Page的数量
			int pagesCount = Integer.parseInt(pages.get("Count").toString());
			System.out.println(pagesCount);
			// 循环得到每个Page
			for (int i = 1; i <= pagesCount; i++) {
				IDispatch page = (IDispatch) pages.method("item",
						new Object[] { new Integer(i) });
				// 输出Page的名称
				System.out.println(page.get("Name"));
				// 将该Page保存为图片
				page.method("Export", new Object[] { outPath + page.get("Name")
						+ ".jpg" });
			}
			Thread.sleep(5000);
			// Quit without saving
			visioApp.method("quit", null);
			visioApp.release();

		} catch (JComException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
 


———————————————————分割线————————分割线————————————————


代码很简单。。。。不过一开始用的“SaveAs”怎么也不成功。。。后来郁闷的到MSDN上看了看Visio的文件格式。。。才发现是Documents->Document->Pages->Page其中Document其实就是代码中的doc变量,而最后用get("item"...)循环打开Page。。。发现Page用的是Export方法...导出。。。搞定!!!


剩下的明天再改。。。准备做成一个swing的。。。。或者现学现卖用C#做成一个exe的...

 

偶的另外一个博客:http://blog.tom.com/monicc     有空大家也来踩踩。。。。

0
0
分享到:
评论
1 楼 小山羊106 2012-08-21  
你好,saveas那个怎么写,发下代码行吗?我是个新手

相关推荐

    jcom读取visio文件后截取图片

    做项目时实现的功能,客户要求上传visio文件后,把visio中的图片读取出来,然后用图片展示出来,这个功能就应运而生了。 PS:包中附有jcom.dll文件,这个是关键,需要将jcom.dll文件放到服务器的bin目录下

    Java中使用JCOM操作Office对象

    总的来说,Java通过JCOM与Office的集成,为开发者提供了在Java应用程序中创建、编辑和操作Office文档的能力,无论是简单的数据导出,还是复杂的文档自动化,都能得以实现。这使得Java开发者也能像使用VB或VBA那样,...

    jcom java调用com+组件

    值得注意的是,JCOM库的使用可能会受到Java版本和操作系统版本的影响,因此在实际应用中需要确保兼容性。同时,由于跨语言交互的复杂性,调试过程中可能需要对COM组件的日志和Java的异常堆栈信息进行分析。 总之,...

    jcom.jar和jcom.dll

    标题中的"jcom.jar和jcom.dll"是两个关键组件,它们在Java环境中用于与Microsoft Office应用程序,如Visio、Word和Excel进行交互,并支持文件转换功能。jcom.jar是Java类库,它包含了用于与DLL(动态链接库)交互的...

    jcom-2.2.4-docs_sources_jar_dll

    首先,`jcom.dll`是jcom组件的动态链接库文件,主要用于Windows操作系统环境。这个文件是jcom的核心,包含了实现特定功能的二进制代码。在编程中,开发人员可以通过调用`jcom.dll`中的函数来利用jcom提供的服务,...

    jcom_jcom_

    **正文** JCom是一个关键的库,它在Java和Component Object ...在使用JCom时,开发者应熟悉COM的基本概念,理解如何通过Java代码创建和操作COM对象,以及如何处理可能出现的异常情况,以确保程序的稳定性和可靠性。

    Java的COM桥 JCom技术文档资料

    Java的COM桥(JCom)是一种技术,它允许Java应用程序与使用组件对象模型(Component Object Model,简称COM)的组件进行交互。COM是微软提出的一种跨平台、跨语言的组件接口标准,主要用于Windows环境下的软件开发。...

    Jcom jcom.dll

    这个组件的核心是 `jcom.dll` 文件,这是一个动态链接库(Dynamic Link Library),在Windows操作系统中常见,它包含了特定的函数和资源,能够被Java程序调用来实现特定的功能。 描述中提到的 "支持 java 的excel ...

    java打印Excel源码(jcom)

    JCOM库是一种常用的Java组件,它提供了与Microsoft Office进行交互的能力,包括读取、写入和打印Excel文件。在这个压缩包中,你可能会找到使用JCOM进行Excel打印的具体实现代码。 首先,我们需要理解Java中打印的...

    jcom源码压缩包

    【jcom源码压缩包】是一个专门针对COM(Component Object Model)组件的解决方案,主要适用于32位操作系统。COM是微软提出的一种组件编程模型,它允许不同编程语言之间进行交互和对象重用,广泛应用于Windows系统中...

    jcom-2.2.4-docs.zip

    - **自动化测试**:在测试领域,JCOM可以用来驱动自动化测试工具,比如控制浏览器或操作系统的行为。 总的来说,JCOM为JAVA开发者提供了一座桥梁,使得他们可以利用丰富的COM组件库,扩展了JAVA在Windows生态中的...

    jcom.dll文件下载

    标题"jcom.dll文件下载"指出我们关注的核心是"jcom.dll",这是一个动态链接库(Dynamic Link Library)文件,通常在Windows操作系统中使用。DLL文件包含可由多个程序同时使用的代码和数据,它有助于节省内存并促进...

    Jcom转换office为pdf

    "Jcom转换office为pdf"这个主题涉及到的是如何使用Java库JCom来实现将Microsoft Office格式的文件(如Word、Excel、PowerPoint)转换成PDF格式。这种转换在多种场景下都是必要的,比如保证文档在不同平台和设备上的...

    JAVA操作微软COM组件的连接工具

    JCOM 库的使用需要注意线程安全和异常处理,因为 COM 组件的调用可能会抛出异常,且在多线程环境下,不同线程对同一 COM 对象的操作可能需要同步控制。此外,由于涉及到 native 方法,JCOM 可能会受到操作系统和JVM...

    基于Java的的COM桥 JCom.zip

    Java的COM桥(JCom)是一种技术,它允许Java应用程序与使用组件对象模型(Component Object Model,简称COM)的组件进行交互。COM是Microsoft开发的一种软件接口技术,用于构建可重用的软件组件,通常在Windows环境...

    简单数据库操作包jcom

    简单数据库操作包jcom,可以方便的操作数据库。更新,删除,批量操作等……

    基于java的的COM桥 JCom.zip

    使用JCom,开发者首先需要知道COM组件的接口信息,这通常通过查询类型库(Type Library)来获取。类型库包含了COM组件的所有接口、方法和属性的详细描述。JCom提供了工具来导入类型库,生成对应的Java接口和类,这样...

    jcom的jar及dll文件

    总之,`jcom.jar`和`jcom.dll`是实现Java和.NET之间通信的关键组件,它们利用了Java和.NET平台的互操作性,为开发者提供了跨平台集成的解决方案。而反编译的源码文件则为理解和调试这个库提供了便利。

Global site tag (gtag.js) - Google Analytics