Word文档格式doc转为mht,mht转为doc,docx格式如何转为doc,word文档转为图片格式,word文档转为pdf格式,doc格式文档下载,word文档doc格式,存为mht文档图标消失,mhtml文档.mht,mht格式
Word文档格式从doc转为mht
发布时间:2008年12月27日?作者:olivertan
阅读次数:491次?类别:学习?永久链接?Trackback?
?
一、?????????? Java调用动态链接库的方法
Java以其跨平台的特性深受人们喜爱,但正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决Java对本地操作的一种方法就是JNI。
Java通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使Java可以实现和本地机器的紧密联系,调用系统级的各接口方法。
但是Java不能直接调用动态链接库,必须按照JNI的开发步骤,利用C或C++语言生成遵循JNI规范的dll文件。JNI的开发步骤如下所示。
1.??????? 编写带有native声明的方法的java类;
2.??????? 使用javac命令编译所编写的java类,生成class文件;
3.??????? 使用“javah 类名”生成扩展名为h的头文件;
4.??????? C/C++程序引用生成的头文件,并实现本地方法;
5.??????? 将C/C++编写的文件生成动态链接库;
6.??????? 将生成的dll文件放到编译好的java class文件目录下。
具体的开发细节请参考JNI规范(Java 本地接口规范),浏览地址:http://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/jniTOC.doc.html
?
二、?????????? Java与.Net互操作使用Office COM对象
Java使用Office COM
((((((((直接使用JNI自定义实现方法
Java通过JNI调用本地方法,该本地方法存放在遵循JNI规范的C++程序生成的dll文件中。由于C++程序不是托管代码,不能直接访问Office PIA,所以必须在C++程序中使用托管代码(C#或VB)访问Office PIA,通过Office PIA使用Office COM
这种方式虽然实现起来比较繁琐,但是可以灵活控制和维护。
((((((((使用
Jacob顾名思义,就是JAVA-COM Bridge,Jacob也是间接使用了JNI方式,封装了一些COM对象的功能。Jacob和其它第三方产品一样,只是自定义了若干的功能,并没有完全使用Office COM对象,所以有一定的局限性。另外,当Office升级时,如果这些中间件不能及时更新,将会影响应用系统的正常使用。
本文的示例采用第一种方式,Java利用JNI方法与.Net互操作,通过Office PIA使用Office COM
三、?????????? 开发环境的配置
((((((((Java环境的配置
1、安装JDK;
2、设置系统变量JAVA_HOME;
3、将“%JAVA_HOME%\bin”加入系统变量PATH;
4、将“%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar”加入系统变量CLASSPATH。
((((((((.Net环境的配置
.Net环境需要安装以下软件:
((((((((Microsoft Office 2003 and related SPs
((((((((Microsoft .NET Framework and related SPs
((((((((Microsoft Visual Studio .NET 2003
与安装Office XP不同,装好Office 2003后,操作系统就自动装上Office PIA。通过访问PIA(主程序集,Primary Interop Assembly)来使用由 Office 应用程序公开的 COM 组件。在ASP和VB中使用Office的COM组件是很方便的,可以通过形如CreateObject(Word.Application)的方式建立OLE对象并操作它的属性。在.NET中,微软提供了PIA以方便C++和C#程序员,但C++是非托管代码,必须使用托管代码(C#或VB)访问PIA。
四、?????????? 开发Java程序
程序调用本地方法Convert2mht将folder目录下的doc文件批量转化为mht文件。
public class doc2mht {
public native boolean Convert2mht(String folder); //folderdoc文件
st