`

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

阅读更多

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

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

2.OpenOffice,可以结合Jodconverter开源框架和OpenOffice.org办公软件,具有跨平台的优点,转化速度快,但是部分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/2016/testItext/typ_doc.doc", "E:/tmp/2016/testItext/typ_doc_wpsBycall.pdf");  
    } 
} 

 

可以参考的资料:

jacob:

用call方法,需装office

http://blog.sina.com.cn/s/blog_4cb1fb310101759c.html

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

http://blog.csdn.net/niuhea/article/details/8611359

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

http://hacker507.iteye.com/blog/1458790

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

http://www.cnblogs.com/vulcans/archive/2009/09/08/1562588.html

jacob中代码及说明:

http://coderbase64.iteye.com/blog/2077184?utm_source=tuicool&utm_medium=referral

 

jcom:

http://liangjian103.iteye.com/blog/697979

 

openoffice:

http://huangronaldo.iteye.com/blog/1628339

http://titanseason.iteye.com/blog/1471606

 

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

分享到:
评论

相关推荐

    Jacob实现word转PDF之格式最美转化

    在这个场景中,我们使用Jacob来实现Word文档到PDF的转换,以保持格式的一致性和美观性。在转换过程中,确保你的计算机上已经安装了Office 2010或更高版本,因为较低版本可能无法支持某些功能,导致转换失败或出现...

    使用jacob转换office为PDF

    "使用jacob转换office为PDF"是解决这一问题的一种方法。JACOB(Java COM Bridge)是一个Java库,它允许Java应用程序与COM(Component Object Model)组件进行交互。在这个场景中,JACOB被用来调用Microsoft Office的...

    Jacob Word excel 转PDF 合并PDF文件

    标题提到的"Jacob Word excel 转PDF 合并PDF文件"是指使用Jacob库来将Microsoft Word和Excel文档转换为PDF格式,并进一步合并多个PDF文件。Jacob(Java Advanced COM Bridge)是一个Java库,它允许Java应用程序与...

    java使用jacob将word 转pdf

    在Java中利用JACOB库实现Word文档转PDF功能时,首先需要完成必要的环境配置工作。 ##### 1. JACOB库介绍 JACOB(Java COM Bridge)是一个开放源代码的Java类库,用于Java程序与Windows平台下的COM对象进行交互。...

    java 使用jacob Word转PDF 完美格式

    总结起来,Java通过Jacob库和Microsoft Office的插件实现Word到PDF的转换是一种有效的方法,特别是当需要保持格式一致性时。然而,这种方法需要在运行环境中安装Office,并且可能受到Office版本限制。在实际开发中,...

    java调用WPS或pdfcreator的com接口实现doc转pdf

    通过设置打印作业的目标为PDFCreator,我们可以在Java中调用打印接口,实现doc到pdf的转换。 5. **Jacob的使用步骤**: - 首先,需要将Jacob的jar文件添加到项目的类路径中,同时确保系统环境变量`PATH`包含了...

    java实现office、wps转pdf,pdf转word

    标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...

    jacob实现doc转html

    总结,利用Jacob库可以实现Java应用程序对COM组件的调用,从而实现.doc到.html的转换。这个过程涉及到对Jacob库的理解,包括如何创建和使用`ActiveXComponent`,以及如何调用COM组件的方法。在转换过程中,还需要...

    使用jacob转pdf资料

    "使用jacob转pdf资料"这个主题涉及到一个名为jacob的Java库,它允许开发者通过Java代码来调用Microsoft Office或WPS组件,实现各种文档格式之间的转换。 首先,jacob(Java COM Bridge)是一个开源的Java库,它的...

    java通过jacob 实现调用windows自带控件 实现文字转语音播放功能!

    以上就是使用Jacob库在Java中实现文字转语音播放的基本流程。需要注意的是,由于Jacob依赖于本地的COM组件,因此这种方法仅适用于Windows操作系统。在其他操作系统上,可能需要寻找其他解决方案,如使用Java的`javax...

    java使用jacob实现word转pdf

    主要为大家详细介绍了java使用jacob实现word转pdf,通过调用模板文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java使用jacob将word,excel,ppt转成html

    Java 使用 Jacob 库将 Office 文件转换为 HTML 是一个常见的需求,尤其在自动化处理文档或在线预览场景中。Jacob(Java and COM Bridge)是一个 Java 库,它允许 Java 应用程序通过 COM(Component Object Model)...

    java将word转图片转pdf_jacob.zip

    在Java中,Word转PDF的实现方式通常有两种:一种是利用Jacob将Word文档渲染成图片序列,然后将这些图片合并成PDF;另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式...

    Java实现word转PDF文件

    在IT行业中,转换文件格式是一项常见的...总结来说,使用Java和Jacob库实现Word转PDF是一项实用的技术,但需要注意平台限制和可能存在的格式转换问题。在实际开发中,根据项目需求和环境选择合适的转换方案至关重要。

    利用Jacob 实现了word转PDF

    以下是对利用Jacob实现Word转PDF的详细说明: 1. **Jacob库介绍**: Jacob是一个Java到COM桥接器,它使得Java开发者能够使用COM组件,如Microsoft Office的Word应用,来执行特定的任务。Jacob通过JNI(Java Native...

    jacob的excel转pdf

    "jacob的excel转pdf"项目提供了一种解决方案,它可能利用了Java的Jacob库来实现这个功能。以下是对这个主题的详细解释。 Jacob(Java Object for Accessing COM)是一个开源Java库,允许Java程序与COM(Component ...

    Java将doc转docx工具类方法,maven项目,Idea可直接运行

    总的来说,这个Java工具类提供了一种有效的方法,利用Apache POI库将.doc文件转换为.docx格式,这在需要处理大量旧版Word文档时非常有用。由于它是作为Maven项目构建的,因此可以方便地在各种开发环境中进行集成和...

    Java 使用 jacob 将office中 word excel ppt 转成pdf

    资源中包括工具类、jacob.jar和jacob-1.18-x64.dll(64位)、jacob-1.18-x86.dll(32位) 在使用jacob时,我们需要将jacob-1.18-x64.dll或jacob-1.18-x86.dll放到jdk的bin目录下或者jdk/jre的bin目录下才可以使用。

    Java中使用Jacob实现Windows下语音合成并生成音频文件示例代码.rar

    在Java编程环境中,有时我们需要与操作系统进行更深层次的交互,比如在Windows系统下实现语音合成。这个场景下,我们可以利用Jacob库(Java COM Bridge)来调用Windows API接口,完成语音合成并生成音频文件的任务。...

    java word转pdf 源码 jacob

    Java Word转PDF是一种常见的文档格式转换需求,在许多业务场景中都有应用,比如报告生成、文档共享等。在Java中,可以使用第三方库如Apache POI处理Word文档,但要将Word转换为PDF,通常需要借助像JACOB这样的库。...

Global site tag (gtag.js) - Google Analytics