关于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的转换,以保持格式的一致性和美观性。在转换过程中,确保你的计算机上已经安装了Office 2010或更高版本,因为较低版本可能无法支持某些功能,导致转换失败或出现...
"使用jacob转换office为PDF"是解决这一问题的一种方法。JACOB(Java COM Bridge)是一个Java库,它允许Java应用程序与COM(Component Object Model)组件进行交互。在这个场景中,JACOB被用来调用Microsoft Office的...
标题提到的"Jacob Word excel 转PDF 合并PDF文件"是指使用Jacob库来将Microsoft Word和Excel文档转换为PDF格式,并进一步合并多个PDF文件。Jacob(Java Advanced COM Bridge)是一个Java库,它允许Java应用程序与...
在Java中利用JACOB库实现Word文档转PDF功能时,首先需要完成必要的环境配置工作。 ##### 1. JACOB库介绍 JACOB(Java COM Bridge)是一个开放源代码的Java类库,用于Java程序与Windows平台下的COM对象进行交互。...
总结起来,Java通过Jacob库和Microsoft Office的插件实现Word到PDF的转换是一种有效的方法,特别是当需要保持格式一致性时。然而,这种方法需要在运行环境中安装Office,并且可能受到Office版本限制。在实际开发中,...
通过设置打印作业的目标为PDFCreator,我们可以在Java中调用打印接口,实现doc到pdf的转换。 5. **Jacob的使用步骤**: - 首先,需要将Jacob的jar文件添加到项目的类路径中,同时确保系统环境变量`PATH`包含了...
标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...
总结,利用Jacob库可以实现Java应用程序对COM组件的调用,从而实现.doc到.html的转换。这个过程涉及到对Jacob库的理解,包括如何创建和使用`ActiveXComponent`,以及如何调用COM组件的方法。在转换过程中,还需要...
"使用jacob转pdf资料"这个主题涉及到一个名为jacob的Java库,它允许开发者通过Java代码来调用Microsoft Office或WPS组件,实现各种文档格式之间的转换。 首先,jacob(Java COM Bridge)是一个开源的Java库,它的...
以上就是使用Jacob库在Java中实现文字转语音播放的基本流程。需要注意的是,由于Jacob依赖于本地的COM组件,因此这种方法仅适用于Windows操作系统。在其他操作系统上,可能需要寻找其他解决方案,如使用Java的`javax...
主要为大家详细介绍了java使用jacob实现word转pdf,通过调用模板文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java 使用 Jacob 库将 Office 文件转换为 HTML 是一个常见的需求,尤其在自动化处理文档或在线预览场景中。Jacob(Java and COM Bridge)是一个 Java 库,它允许 Java 应用程序通过 COM(Component Object Model)...
在Java中,Word转PDF的实现方式通常有两种:一种是利用Jacob将Word文档渲染成图片序列,然后将这些图片合并成PDF;另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式...
在IT行业中,转换文件格式是一项常见的...总结来说,使用Java和Jacob库实现Word转PDF是一项实用的技术,但需要注意平台限制和可能存在的格式转换问题。在实际开发中,根据项目需求和环境选择合适的转换方案至关重要。
以下是对利用Jacob实现Word转PDF的详细说明: 1. **Jacob库介绍**: Jacob是一个Java到COM桥接器,它使得Java开发者能够使用COM组件,如Microsoft Office的Word应用,来执行特定的任务。Jacob通过JNI(Java Native...
"jacob的excel转pdf"项目提供了一种解决方案,它可能利用了Java的Jacob库来实现这个功能。以下是对这个主题的详细解释。 Jacob(Java Object for Accessing COM)是一个开源Java库,允许Java程序与COM(Component ...
总的来说,这个Java工具类提供了一种有效的方法,利用Apache POI库将.doc文件转换为.docx格式,这在需要处理大量旧版Word文档时非常有用。由于它是作为Maven项目构建的,因此可以方便地在各种开发环境中进行集成和...
资源中包括工具类、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编程环境中,有时我们需要与操作系统进行更深层次的交互,比如在Windows系统下实现语音合成。这个场景下,我们可以利用Jacob库(Java COM Bridge)来调用Windows API接口,完成语音合成并生成音频文件的任务。...
Java Word转PDF是一种常见的文档格式转换需求,在许多业务场景中都有应用,比如报告生成、文档共享等。在Java中,可以使用第三方库如Apache POI处理Word文档,但要将Word转换为PDF,通常需要借助像JACOB这样的库。...