如何使用jacob将jacob word转pdf换为PDF 收藏

> 利用jacob将Word转成PDF时候报错:Invoke of: SaveAs,该怎么解决
利用jacob将Word转成PDF时候报错:Invoke of: SaveAs,该怎么解决
vvbeing & &
发布时间: & &
浏览:5 & &
回复:0 & &
悬赏:0.0希赛币
利用jacob将Word转成PDF时候报错:Invoke of: SaveAs这是我的源代码:
String&filename&=&"d:\\补充保密协议.doc";&&
&&&&&&&&&&&&&&&&String&toFilename&=&filename&+&".pdf";&&
&&&&&&&&&&&&&&&&System.out.println("启动Word...");&&
&&&&&&&&&&&&&&&&long&start&=&System.currentTimeMillis();&&
&&&&&&&&&&&&&&&&ActiveXComponent&app&=&&&
&&&&&&&&&&&&&&&&try&{&&
&&&&&&&&&&&&&&&&&&&&app&=&new&ActiveXComponent("Word.Application");&&
&&&&&&&&&&&&&&&&&&&&app.setProperty("Visible",&false);&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&Dispatch&docs&=&app.getProperty("Documents").toDispatch();&&
&&&&&&&&&&&&&&&&&&&&System.out.println("打开文档..."&+&filename);&&
&&&&&&&&&&&&&&&&&&&&Dispatch&doc&=&Dispatch.call(docs,//&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&"Open",&//&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&filename,//&FileName&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&false,//&ConfirmConversions&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&true&//&ReadOnly&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&).toDispatch();&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&System.out.println("转换文档到PDF..."&+&toFilename);&&
&&&&&&&&&&&&&&&&&&&&File&tofile&=&new&File(toFilename);&&
&&&&&&&&&&&&&&&&&&&&if&(tofile.exists())&{&&
&&&&&&&&&&&&&&&&&&&&&&&&tofile.delete();&&
&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&Dispatch.call(doc,//&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&"SaveAs",&//&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&toFilename,&//&FileName&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&wdFormatPDF);&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&Dispatch.call(doc,&"Close",&false);&&
&&&&&&&&&&&&&&&&&&&&long&end&=&System.currentTimeMillis();&&
&&&&&&&&&&&&&&&&&&&&System.out.println("转换完成..用时:"&+&(end&-&start)&+&"ms.");&&
&&&&&&&&&&&&&&&&}&catch&(Exception&e)&{&&
&&&&&&&&&&&&&&&&&&&&System.out.println("========Error:文档转换失败:"&+&e.getMessage());&&
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}&finally&{&&
&&&&&&&&&&&&&&&&&&&&if&(app&!=&null)&&
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&利用jacob将Word转成PDF时候报错:Invoke of: SaveAs -Java- TryCatch
>> Content
利用jacob将Word转成PDF时候报错:Invoke of: SaveAs
这是我的源代码:String&filename&=&"d:\\补充保密协议.doc";&&&&&&&&&&&&&&&&&&String&toFilename&=&filename&+&".pdf";&&&&&&&&&&&&&&&&&&System.out.println("启动Word...");&&&&&&&&&&&&&&&&&&long&start&=&System.currentTimeMillis();&&&&&&&&&&&&&&&&&&ActiveXComponent&app&=&&&&&&&&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&&&&&&&app&=&new&ActiveXComponent("Word.Application");&&&&&&&&&&&&&&&&&&&&&&app.setProperty("Visible",&false);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Dispatch&docs&=&app.getProperty("Documents").toDispatch();&&&&&&&&&&&&&&&&&&&&&&System.out.println("打开文档..."&+&filename);&&&&&&&&&&&&&&&&&&&&&&Dispatch&doc&=&Dispatch.call(docs,//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"Open",&//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&filename,//&FileName&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&false,//&ConfirmConversions&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&true&//&ReadOnly&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&).toDispatch();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&System.out.println("转换文档到PDF..."&+&toFilename);&&&&&&&&&&&&&&&&&&&&&&File&tofile&=&new&File(toFilename);&&&&&&&&&&&&&&&&&&&&&&if&(tofile.exists())&{&&&&&&&&&&&&&&&&&&&&&&&&&&tofile.delete();&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&Dispatch.call(doc,//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"SaveAs",&//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&toFilename,&//&FileName&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&wdFormatPDF);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Dispatch.call(doc,&"Close",&false);&&&&&&&&&&&&&&&&&&&&&&long&end&=&System.currentTimeMillis();&&&&&&&&&&&&&&&&&&&&&&System.out.println("转换完成..用时:"&+&(end&-&start)&+&"ms.");&&&&&&&&&&&&&&&&&&}&catch&(Exception&e)&{&&&&&&&&&&&&&&&&&&&&&&System.out.println("========Error:文档转换失败:"&+&e.getMessage());&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&&&&&&&}&finally&{&&&&&&&&&&&&&&&&&&&&&&if&(app&!=&null)&&&&&&&&&&&&&&&&&&&&&&&&&&app.invoke("Quit",&wdDoNotSaveChanges);&&&&&&&&&&&&&&&&&&}&&
------Solutions------
String&filename&=&"D:\\补充保密协议.doc";String&toFilename&=&"D:\\aa.pdf";System.out.println("启动Word");ActiveXComponent&app&=&new&ActiveXComponent("Word.Application");try&{app.setProperty("Visible",&new&Variant(false));Dispatch&docs&=&app.getProperty("Documents").toDispatch();System.out.println("打开文档"&+&filename);Dispatch&doc&=&Dispatch.invoke(docs,"open",Dispatch.Method,new&Object[]&{&filename,},&new&int[1]).toDispatch();System.out.println("转换文档到PDF"&+&toFilename);File&tofile&=&new&File(toFilename);if&(tofile.exists())&{tofile.delete();}Dispatch.invoke(doc,&"SaveAs",&Dispatch.Method,&new&Object[]&{toFilename},&new&int[17]);&//&设置17,即转为pdfVariant&file&=&new&Variant(false);Dispatch.call(doc,&"Close",&file);}&catch&(Exception&e)&{System.out.println("========Error:文档转换失败:"&+&e.getMessage());}&finally&{if&(app&!=&null)app.invoke("Quit",&wdDoNotSaveChanges);}我现在代码改了,不报错了,但是生成的PDF文件打不开。打开文件时候,弹出窗口信息:“Adobe&Reader无法打开aa.pdf,因为不支持此文件类型或者文件已损坏(例如,文件作为电子邮件附件发送但没有正确地解码)&&&”
------Solutions------
Dispatch.invoke(doc,&&"SaveAs",&&Dispatch.Method,&&new&Object[]&{toFilename},&&new&int[17]);&//&设置17,即转为pdf这一段代码有问题。invoke看api最后一个参数是表示错误参数,而不是转换格式的参数,正确的应该为Dispatch.invoke(doc,&&"SaveAs",&&Dispatch.Method,&&new&Object[]&{toFilename,new&Variant(17)},&&new&int[1]);&查询了很多网站 知道使用jacob 可以将word 转换成
首先我自己的环境是windows xp ,office2007 ,jdk1.5;
1.先下载office2007 能另存为pdf的插件 SaveAsPDFandXPS.exe 安装
2.附件提供了jacob1.9的下载
3.这点很重要也是耗时我最久的就是jacob.dll与jacob.jar的存放位置;位置不对则会出现app.getProperty(&Documents&).toDispatch()这句话无法正常执行;
位置如下文件存放在jdk的jre下 例如我这边是
jacob.jar 放在 E:\jdk1.5.0_14\jre\lib\ext
jacob.dll 放在 E:\jdk1.5.0_14\jre\bin
下能正常执行;
按网上说的 放在windows\system32下则会出现错误
源代码如下:
Java代码 &
static&final&int&wdFormatPDF&=&17;&&&&&&public&void&wordToPDF(String&sfileName,String&toFileName){&&&&&&&&&&&&&&&&&&&&&&&&System.out.println(&启动Word...&);&&&&&&&&&&&&&&long&start&=&System.currentTimeMillis();&&&&&&&&&&&&&&ActiveXComponent&app&=&null;&&&&&&&&&&Dispatch&doc&=&null;&&&&&&&&&&try&{&&&&&&&&&&&&&&&&&&app&=&new&ActiveXComponent(&Word.Application&);&&&&&&&&&&&&&&&&&&app.setProperty(&Visible&,&new&Variant(false));&&&&&&&&&&&&&&Dispatch&docs&=&app.getProperty(&Documents&).toDispatch();&&&&&&&&&&&&&&&&doc&=&Dispatch.call(docs,&&&Open&&,&sfileName).toDispatch();&&&&&&&&&&&&&&System.out.println(&打开文档...&&+&sfileName);&&&&&&&&&&&&&&System.out.println(&转换文档到PDF...&&+&toFileName);&&&&&&&&&&&&&&&&&&File&tofile&=&new&File(toFileName);&&&&&&&&&&&&&&&&&&if&(tofile.exists())&{&&&&&&&&&&&&&&&&&&&&&&tofile.delete();&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&Dispatch.call(doc,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SaveAs&,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&toFileName,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&wdFormatPDF);&&&&&&&&&&&&&&&&&&long&end&=&System.currentTimeMillis();&&&&&&&&&&&&&&&&&&System.out.println(&转换完成..用时:&&+&(end&-&start)&+&&ms.&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(Exception&e)&{&&&&&&&&&&&&&&&&&&System.out.println(&========Error:文档转换失败:&&+&e.getMessage());&&&&&&&&&&&&&&}&finally&{&&&&&&&&&&&&&&Dispatch.call(doc,&Close&,false);&&&&&&&&&&&&&&System.out.println(&关闭文档&);&&&&&&&&&&&&&&if&(app&!=&null)&&&&&&&&&&&&&&&&&&&&&&app.invoke(&Quit&,&new&Variant[]&{});&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&ComThread.Release();&&&&&&&&&}&&&&&&public&static&void&main(String[]&args)&{&&&&&&&&&&Test&d&=&new&Test();&&&&&&&&&&d.wordToPDF(&E:\\321.doc&,&&E:\\test_321test.pdf&);&&&&&&}&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93610次
积分:1865
积分:1865
排名:第17240名
原创:86篇
转载:69篇问题:Jacob word转pdf,解决
描述:在main方法里面可以执行成功,但是不在main方法里就不行了,报错如下:
Could not initialize class com.jacob.activeX.ActiveXComponent解决方案1:Jacob实现word转pdf采用jacob实现word转pdf使用jacob框架_word转pdf----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!解决方案2:解决了,配置问题,,,,,,,,,,,,,
以上介绍了“Jacob word转pdf,解决”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/wd/599481.html
上一篇: 下一篇:相关资料推荐
jacob简单介绍
java 实现对word的操作;\r\nSpring MVC的详解、指南与实战讲解
里面是各种操作的例子,仅供参考,不求分,只求能帮助到大家
伍尔夫 雅各的房间
英文原版书,学英语用的
英文原版小说
当前资料暂无简介~
荷兰石墙兵型
国际象棋英文版图书大全
是一本有关塑性成形基础理论方面的英文书籍。适合于工程技术人员及研究生使用,对提高专业阅读能力非常有益。
在此可输入您对该资料的评论~
资料阅读排行
(window.slotbydup=window.slotbydup || []).push({
id: '2371234',
container: s,
size: '300,250',
display: 'inlay-fix'
该用户的其它资料
请选择举报的类型
赌博犯罪类
资料评价:
所需积分:0

我要回帖

更多关于 pdf转换成word 的文章

 

随机推荐