首页 > 其他分享 >使用Jcom组件操作Visio批量导出图片

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

时间:2023-03-21 10:33:33浏览次数:39  
标签:Jcom IDispatch jcom visioApp 文档 Visio 组件 new get


[url]http://mncc.iteye.com/blog/367389[/url]

在JAVA中使用JCOM和JXL注意要点:
(1)在你的lib下要有jdom-1.0.jar,jxl-2.5.5.jar,jcom-2.2.4.jar,jcom.dll。
(2)要把jcom.dll同时放到你JDK的bin目录下或者放到系统盘的windows下(推荐放到JDK的BIN下)

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

import java.io.File;

import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.JComException;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;


public class ExportToPicsFromVisio {

/**
* @param args
*/
private void createDir(String outPath){
File file = new File(outPath);
if(file.exists()){
file.delete();
}
try {
file.mkdir();
} catch (Exception e) {
e.printStackTrace();
}
}
private void visioTest(String vsdFilePath, String outPath) {
createDir(outPath);
ReleaseManager rm = new ReleaseManager();
IDispatch visioApp;
try {
// 调用Visio程序
visioApp = new IDispatch(rm, "Visio.Application");
// 为了方便程序调试,设置成了显示打开Visio,正式用改成false
visioApp.put("Visible", new Boolean(false));
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 + i+"_"+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();*/
}

}
public static void main(String[] args) {
// TODO Auto-generated method stub
ExportToPicsFromVisio v = new ExportToPicsFromVisio();
v.visioTest("D:\\工作文档\\项目开发文档\\报表功能设计文档V0.1.vsd", "D:\\工作文档\\项目开发文档\\报表功能设计文档\\");

}

}

标签:Jcom,IDispatch,jcom,visioApp,文档,Visio,组件,new,get
From: https://blog.51cto.com/u_3871599/6139657

相关文章

  • 界面控件DevExtreme的图表组件——一个高性能数据可视化组件
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • 【Unity3D】VideoPlayer组件
    1简介​AudioSource组件中介绍了音频的播放,本文将介绍基于VideoPlayer组件实现视频播放。​VideoPlayer属性面板如下:Source:视频源类型,有2种类型:VideoC......
  • Spring Cloud Alibaba系列(一)限流与防护组件Sentinel的简单使用
    Sentinel是SpringCloudAlibaba体系的安全防护组件,我们可以使用它以“非业务侵入”方式实现限流,熔断,服务降级需求。一.下载并启动Sentinel控制台从GitHub网址https......
  • 【Unity3D】AudioSource组件
    1简介​1)AudioSource与AudioListener简介​AudioSource(音频源)组件用于控制播放AudioClip(音频片段),能够控制2D和3D(距离越远,声音越小)声音播放,它一般挂在产......
  • Spring整合Hibernate 实现DAO组件
    为了实现DAO组件,Spring提供了大量的XxxDaoSupport类,这些DAO支持类对于实现DAO组件有很大的帮助,因为这些DAO支持类完成了大量基础性工作。Spring为Hib......
  • 一个企业级的文件上传组件应该是什么样的
    前言大家好这里是阳九,一个中途转行的野路子码农,热衷于研究和手写前端工具.我的宗旨就是万物皆可手写新手创作不易,有问题欢迎指出和轻喷,谢谢本文适合有一定node后......
  • Vue3+element-plus图片上传剪裁组件
    userAvatar.vue<template><divclass="user-info-head"@click="editCropper()"><img:src="options.img"title="点击上传头像"class="img-circleimg-lg"/>......
  • 使用npm发布vue插件或组件库
    1.先行再npm官网注册一个自己的npm账号;https://www.npmjs.com/2.准备插件或组件库:1)新建一个文件夹package作为写组件的地方2)package文件夹内使用npminit命令初始化包,获......
  • Vue3 + Swiper开发轮播列表组件
    Vue3+Swiper开发轮播列表组件前端开发中,轮播列表的场景并不少见,通常使用Vue+Swiper来实现,上手比较快。安装依赖直接执行npm命令npmiswiper组件编写Html模板......
  • vue子组件怎么调用父组件的方法
    方法总结:1、子组件中通过“this.$parent.event”来调用父组件的方法。2、子组件用“$emit”向父组件触发一个事件,父组件监听这个事件即可。3、父组件把方法传入子组件中......