package com.converter.pdfConverter;
import java.io.File;
import com.converter.utils.FileUtils;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
public class JacobPDFConverter implements PDFConverter {
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 void convert2PDF(String inputFile, String pdfFile) {
String suffix = FileUtils.getFileSufix(inputFile);
File file = new File(inputFile);
if(!file.exists()){
System.out.println("文件不存在!");
return;
}
if(suffix.equals("pdf")){
System.out.println("PDF not need to convert!");
return ;
}
if(suffix.equals("doc")||suffix.equals("docx")||suffix.equals("txt")){
word2PDF(inputFile,pdfFile);
}else if(suffix.equals("ppt")||suffix.equals("pptx")){
ppt2PDF(inputFile,pdfFile);
}else if(suffix.equals("xls")||suffix.equals("xlsx")){
excel2PDF(inputFile,pdfFile);
}else{
System.out.println("文件格式不支持转换!");
}
}
public void convert2PDF(String inputFile) {
String pdfFile = FileUtils.getFilePrefix(inputFile)+".pdf";
convert2PDF(inputFile,pdfFile);
}
public static void word2PDF(String inputFile,String pdfFile){
//打开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);
}
public static void excel2PDF(String inputFile,String pdfFile){
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");
}
public static void ppt2PDF(String inputFile,String pdfFile){
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");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
三种java转换word 的方式 1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部API可以方便转换。 另外实现pdfflash播放
资源推荐
资源详情
资源评论
收起资源包目录
DocConverter.zip (33个子文件)
DocConverter
.project 388B
src
com
converter
swfConverter
SWFToolsSWFConverter.java 1KB
SWFConverter.java 180B
utils
FileUtils.java 1KB
docConverter
DocConverter.java 891B
pdfConverter
JComPDFConverter.java 2KB
JacobPDFConverter.java 3KB
PDFConverter.java 182B
OpenOfficePDFConverter.java 3KB
test
TestJacob.java 642B
TestDocConverter.java 1KB
lib
jacob
jacob-1.17-M2-x86.dll 172KB
jacob.jar 47KB
JODConverter
unoil-3.2.1.jar 1.35MB
juh-3.2.1.jar 54KB
ridl-3.2.1.jar 251KB
jodconverter-core-3.0-beta-4.jar 68KB
jurt-3.2.1.jar 106KB
JCom
jcom.dll 76KB
jcom.jar 71KB
.settings
org.eclipse.jdt.core.prefs 629B
org.eclipse.core.resources.prefs 88B
.classpath 939B
bin
com
converter
swfConverter
SWFConverter.class 228B
SWFToolsSWFConverter.class 2KB
utils
FileUtils.class 2KB
docConverter
DocConverter.class 1KB
pdfConverter
PDFConverter.class 228B
OpenOfficePDFConverter.class 4KB
JacobPDFConverter.class 4KB
JComPDFConverter.class 3KB
test
TestDocConverter.class 1KB
TestJacob.class 1KB
共 33 条
- 1
cotean666
- 粉丝: 5
- 资源: 52
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页