使用java jacob转换office到pdf,注意事项:
1.本机需要安装office,或者openoffice(未测试过)
2.下载最新的jacob的jar,解压后将相关的dll文件拷贝到java/jre/bin目录下.
3.如果包如下错误:
no jacob-1.18-x64 in java.library.path 原因可能是找不到相关dll文件,将配套dll文件拷贝到相关使用的jdk/jre/bin目录
转换代码(代码来源于互联网,由于时间原因,原创暂时无法考证):
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; /** * * @ClassName: OfficeToPDF * @Description: 使用jacob转换office为pdf,也可以将txt文件转换为pdf. * @author *************** * @date 2015年9月21日 上午11:15:44 * */ public class OfficeToPDF { private static final int wdFormatPDF = 17; private static final int xlTypePDF = 0; private static final int ppSaveAsPDF = 32; private static final int msoTrue = -1; private static final int msofalse = 0; public static void main(String[] args) { convert2PDF("D:\\aaaa.ppt","D:\\bbbbb.pdf"); } public static boolean convert2PDF(String inputFile, String pdfFile) { String suffix = getFileSufix(inputFile); File file = new File(inputFile); if(!file.exists()){ System.out.println("文件不存在!"); return false; } if(suffix.equals("pdf")){ System.out.println("PDF not need to convert!"); return false; } if(suffix.equals("doc")||suffix.equals("docx")||suffix.equals("txt")){ return word2PDF(inputFile,pdfFile); }else if(suffix.equals("ppt")||suffix.equals("pptx")){ return ppt2PDF(inputFile,pdfFile); }else if(suffix.equals("xls")||suffix.equals("xlsx")){ return excel2PDF(inputFile,pdfFile); }else{ System.out.println("文件格式不支持转换!"); return false; } } public static String getFileSufix(String fileName){ int splitIndex = fileName.lastIndexOf("."); return fileName.substring(splitIndex + 1); } /** * * @Title: word2PDF * @Description: 转换word文档为pdf * @param @param inputFile * @param @param pdfFile * @param @return 设定文件 * @return boolean 返回类型 * @throws */ public static boolean word2PDF(String inputFile,String pdfFile){ try{ //打开word应用程序 ActiveXComponent app = new ActiveXComponent("Word.Application"); //设置word不可见 app.setProperty("Visible", false); //获得word中所有打开的文档,返回Documents对象 Dispatch docs = app.getProperty("Documents").toDispatch(); //调用Documents对象中Open方法打开文档,并返回打开的文档对象Document Dispatch doc = Dispatch.call(docs, "Open", inputFile, false, true ).toDispatch(); //调用Document对象的SaveAs方法,将文档保存为pdf格式 /* Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF //word保存为pdf格式宏,值为17 ); */ Dispatch.call(doc, "ExportAsFixedFormat", pdfFile, wdFormatPDF //word保存为pdf格式宏,值为17 ); //关闭文档 Dispatch.call(doc, "Close",false); //关闭word应用程序 app.invoke("Quit", 0); return true; }catch(Exception e){ return false; } } /** * * @Title: excel2PDF * @Description: 转换excel为PDF * @param @param inputFile * @param @param pdfFile * @param @return 设定文件 * @return boolean 返回类型 * @throws */ public static boolean excel2PDF(String inputFile,String pdfFile){ try{ ActiveXComponent app = new ActiveXComponent("Excel.Application"); app.setProperty("Visible", false); Dispatch excels = app.getProperty("Workbooks").toDispatch(); Dispatch excel = Dispatch.call(excels, "Open", inputFile, false, true ).toDispatch(); Dispatch.call(excel, "ExportAsFixedFormat", xlTypePDF, pdfFile ); Dispatch.call(excel, "Close",false); app.invoke("Quit"); return true; }catch(Exception e){ return false; } } /** * * @Title: ppt2PDF * @Description: 转换ppt为office * @param @param inputFile * @param @param pdfFile * @param @return 设定文件 * @return boolean 返回类型 * @throws */ public static boolean ppt2PDF(String inputFile,String pdfFile){ try{ ActiveXComponent app = new ActiveXComponent("PowerPoint.Application"); //app.setProperty("Visible", msofalse); Dispatch ppts = app.getProperty("Presentations").toDispatch(); Dispatch ppt = Dispatch.call(ppts, "Open", inputFile, true,//ReadOnly true,//Untitled指定文件是否有标题 false//WithWindow指定文件是否可见 ).toDispatch(); Dispatch.call(ppt, "SaveAs", pdfFile, ppSaveAsPDF ); Dispatch.call(ppt, "Close"); app.invoke("Quit"); return true; }catch(Exception e){ return false; } } }
相关推荐
使用jacob转换office为PDF文件,需要将jacob.dll放到jdk\bin目录下
资源中包括工具类、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-web开发在线浏览文档功能中可以用到,该资源可将office文档转换成pdf文档,转换兼容office2003(doc、xls、ppt)和office2007(doc、xlsx、pptx),将该资源解压后,需要将jacob-1.19-x86.dll和jacob-...
20190720项目代码。java实现office转换为PDF,使用JDK1.8和jacob
支持word、excel、ppt、wps、txt等多种格式转pdf、并支持pdf转word。个人感觉非常好用。
java 使用jacob word转换pdf
1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部API可以方便转换。 另外...
* 使用Jacob将office格式文件转换成pdf格式,在使用代码前需将jacob-1.43-M2-x86/x64.dll拷贝到%JAVA_HOME%下的 bin目录下 * 建议本机按照较高版本的office软件,同时最好按另存为pdf的插件 SaveAsPDFandXPS.exe,...
jacob转换office文件成html文件出现乱码原因解释
该文件包含jacob jar包(32位,64位)通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf。 1、将 DLL文件复制到 c:\windows\system32 下面。 2、将jacob.jar 文件导入项目中。 ICEpdf-pro-6.1.1 相关jar包,可...
jacob.jar1.20及使用方法 解压后获得3个文件 jacob.jar jacob-1.20-x64.dll jacob-1.20-x86.dll 包含(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf
② 需要把jacob.dll文件复制到JDK的bin目录下面,否则无法调用转换为PDF的功能。 2)使用的服务器上必须安装有office软件,因为原理是调用office的pdf转换器来实现的。 3)必须也要有PDF软件,因为office要通过...
操作各种office 1、使用jacob时,需要服务器端上安装office,它是通过com技术访问的,需要把jacob-1.15-M4-x86.dll拷贝...3、使用jacob技术调用2007自带的word转pdf工具,WordToPdfOffice2007是使用office2007的另存功能
本文介绍两种常用的Office文档转PDF解决方案。 1. [Windows平台]使用Microsoft Office 1.1 特点 优点: 兼容好; 速度快;... 需要把jacob-x.xx-x64.dll放到java/bin(与java.exe相同)目录下 1.3 示例 支持
下面为转pdf使用方法 package com.pdf.doctopdf.pdf; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; import java.io.File; public class TestJacob...
提供多种office文件转换为pdf文件的java解决方案
Jacob调用MS Office COM自动化组件转换Office文档为PDF
将word文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office、WPS以及LiberOffice,另一种是利用各种语言提供的对于Office文档读取的接口...
该文件包含jacob jar包(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf
例如JAVA纯代码编写,用于转换格式需要用到的jar包,例如将word转为pdf,或者word转为xml等格式,都可以使用这套组件进行开发,