1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > jacob转pdf linux Java 使用jacob实现doc转pdf(附带其他方法分析)

jacob转pdf linux Java 使用jacob实现doc转pdf(附带其他方法分析)

时间:2023-01-09 23:53:23

相关推荐

jacob转pdf linux Java 使用jacob实现doc转pdf(附带其他方法分析)

关于doc转pdf的方法根据本人的查询主要有四种:

1.使用Jacob,但是使用jacob中要依赖Office,部分博文中还会依赖插件,如SaveAsPDFandXPS.exe。但是也发现不需要依赖Office,可以使用wps、pdfcreator,在使用wps的时候还不需要安装插件(注意:wps有linux版,office到现在为止还没有linux版)。

2.OpenOffice,可以结合Jodconverter开源框架和办公软件,具有跨平台的优点,转化速度快,但是部分office的格式似乎不支持。

3.Adobe Acrobat + jacob,这个用到什么虚拟打印机,和微软的一起使用效果比较好。(这个我不太懂)

4.Jcom + Adobe Acrobat ,会用到IDispatch。

方法3,4好像都依赖office。

我使用的是jacob,需要jacob.jar来调用activex控件,本机需安装WPS,当然使用pdfcreator的话,就要安装它了。

还需要jacob.jar以及jacob.dll 请看附件

jacob.dll 需要放置在系统system32下,如果系统是c盘:C://windows/system32/下面

我是把jacob.dll放在类似这样的目录下,D:\JDK\jdk1.8.0_05\jre\bin。

public class Wps implements Converter { //接口中只有一个方法,不过添加了同步

public synchronized boolean convert(String word, String pdf) {

boolean boo = wps2pdf(word, pdf);

return boo;

}

public static boolean wps2pdf(String word,String pdf){

File pdfFile = new File(pdf);

ActiveXComponent wps = null;

Dispatch doc = null;

long start = System.currentTimeMillis();

try {

wps = new ActiveXComponent("kwps.application");

wps.setProperty("visible", new Variant(false));

Dispatch docs = wps.getProperty("Documents").toDispatch();

// doc = Dispatch.invoke(docs, "Open", Dispatch.Method,

// new Object[]{word, new Variant(false),new Variant(true)},

// new int[1]).toDispatch();

doc = Dispatch.call(docs, "Open", word, false, true).toDispatch();

if(pdfFile.exists()){

pdfFile.delete();

}

// Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{pdf,new Variant(17)}, new int[1]);

Dispatch.call(doc, "SaveAs", pdf, 17);

long end = System.currentTimeMillis();

System.out.println("耗时:" + (end-start) + "ms.");

} catch (Exception ex) {

ex.printStackTrace();

System.out.println("转化出错:" + ex.getMessage());

return false;

} finally {

Dispatch.call(doc, "Close", false);

System.out.println("关闭WPS");

if (wps != null) {

wps.invoke("Quit", new Variant[]{});

}

}

return true;

}

public static void main(String[] args) {

new Wps().convert("E:/tmp//testItext/typ_doc.doc", "E:/tmp//testItext/typ_doc_wpsBycall.pdf");

}

}

可以参考的资料:

jacob:用call方法,需装office

用invoke方法,需装office,要安装插件

调用WPS或pdfcreator的com接口实现doc转pdf(相对比较好)

关于jacob介绍比较详细(包括类,方法)

jacob中代码及说明:

jcom:

openoffice:

附件中包含jacob-1.18的jar、dll、api_docs

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。