jacob office转pdf
程序员文章站
2022-06-03 09:14:06
...
注意调用前一定要先安装office,然后将附件对应的jar包拷贝至tomcat或者项目lib目录,再将附件中对应系统的dll文件拷贝至系统system32目录,然后调用时穿入转换前的文件路径和转换后的文件路径即可
public 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; } } public 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; } } public 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) { LogUtil.errorlog(this.getClass(), e); return false; } }