Java利⽤Jacob实现excel,ppt,word转pdf
⾸先先下载jar包
压缩后
需要将jacob*.dll⽂件复制到jdk的bin⽬录下,类似:D:\Program Files\Java\jdk1.8.0_144\bin
我的只放在了jdk下就可以了,也有⼈说jre下⾯也要放,可以⾃⼰试试
下⾯上代码
控件说明:这个⽅法实际就是调⽤本地的 WPS 或者office 来实现转换的
只需要将下⾯⽅法⾥开头的这句话,根据下⾯的 name 改了就可以
ActiveXComponent app= new ActiveXComponent(“name”);
其中的 name 的值和你需要调⽤的ActiveX控件有关,看你想⽤WPS还是office了,我还是推荐WPS,office激活还挺⿇烦的还有版本问题
MS控件名name值
WPS⽂字KWPS.Aplication
WPS的Excel KET.Application
WPS的演⽰⽂档(PPT)KWPP.Application
Word Word.Application
Excel Excel.Application
Powerpoint Powerpoint.Application
public class PDFUtil {
private static final int ppSaveAsPDF =32;
public static void main(String[] args){
//path:原⽂档路径,也可以为⼀个⽹络地址
//pdfPath为⽣成的pdf⽂件路径
String path ="F:/test.doc";
String pdfPath ="F:/test.pdf";
boolean bo = PDFUtil.word2PDF(path,pdfPath);
if(bo){excel最强教科书完全版pdf
System.out.println("转换完成!");
}else{
System.out.println("转换失败!");
}
}
// word转换为pdf
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 = Property("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);
Dispatch.call(doc,"Close",false);
// 关闭word应⽤程序
app.invoke("Quit",0);
return true;
}catch(Exception e){
return false;
}
}
// excel转换为pdf
public static boolean excel2PDF(String inputFile, String pdfFile){
try{
ActiveXComponent app =new ActiveXComponent("Excel.Application");  app.setProperty("Visible",false);
Dispatch excels = Property("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;
}
}
// ppt转换为pdf
public static boolean ppt2PDF(String inputFile, String pdfFile){
try{
ActiveXComponent app =new ActiveXComponent(
"PowerPoint.Application");
// app.setProperty("Visible", msofalse);
Dispatch ppts = Property("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;
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。