文件名称:word,ppt转pdf
文件大小:1.4MB
文件格式:RAR
更新时间:2021-02-07 10:35:23
word ppt pdf
可以将word,ppt转换成pdf格式,
1.安装《Apache_OpenOffice_4.1.5_Win_x86_install_zh-CN.exe》
2.将jar包加入到工程中
3.编写Java类,注意配置安装的位置
package com.han.office;
import java.io.File;
import java.util.Date;
import java.util.regex.Pattern;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
import com.sun.star.util.FileIOException;
/**
* 这是一个工具类,主要是为了使Office2003-2007全部格式的文档(.doc|.docx|.ppt|.pptx)
* 转化为pdf文件
* @date 2018-1-18
* @author hanshaobin
*
*/
public class Officer {
public static void main(String[] args) {
Officer office2pdf = new Officer();
try {
office2pdf.office2pdf("d:/test.doc", "d:/java_" + new Date().getTime() + ".pdf");
office2pdf.office2pdf("d:/test.pptx");
} catch (FileIOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.ppt|.pptx) 转化为pdf文件
*
* @param inputFilePath
* 源文件路径,如:"d:/test.docx"
* @param outputFilePath
* 目标文件路径,如:"d:/test_docx.pdf"
* @return
* @throws FileIOException
* 文件格式不正确
*/
public boolean office2pdf(String inputFilePath, String outputFilePath) throws FileIOException {
if(!isRigthFileFix(inputFilePath)){
throw new FileIOException("文件格式不正确");
}
boolean flag = false;
OfficeManager officeManager = getOfficeManager();
// 连接OpenOffice
OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
// long begin_time = new Date().getTime();
// 判断目标文件路径是否为空
if (null == outputFilePath) {
// 转换后的文件路径
outputFilePath = getOutputFilePath(inputFilePath);
}
try{
converterFile(inputFilePath, outputFilePath, converter);
flag = true;
}catch(Exception e){
e.printStackTrace();
}
officeManager.stop();
// long end_time = new Date().getTime();
// System.out.println("文件转换耗时:[" + (end_time - begin_time) / 1000 + "]s");
return flag;
}
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.ppt|.pptx) 转化为pdf文件
* 默认转换位置与源文件位置相同,文件名相同
* @param inputFilePath
* 源文件路径,如:"d:/test.docx"
* @return
* @throws FileIOException
* 文件格式不正确
*/
public boolean office2pdf(String inputFilePath) throws FileIOException {
return office2pdf(inputFilePath, null);
}
/**
* 根据操作系统的名称,获取OpenOffice4的安装目录
* 如我的OpenOffice 4安装在:C:\\Program Files (x86)\\OpenOffice 4
* @return OpenOffice 4的安装目录
*/
public String getOfficeHome() {
String osName = System.getProperty("os.name");
if (Pattern.matches("Linux.*", osName)) {
return "/opt/openoffice.org4";
} else if (Pattern.matches("Windows.*", osName)) {
return "C:\\Program Files (x86)\\OpenOffice 4";
} else if (Pattern.matches("Mac.*", osName)) {
return "/Application/OpenOffice.org.app/Contents";
}
return null;
}
/**
* 连接OpenOffice 并且启动OpenOffice
* @return
*/
public OfficeManager getOfficeManager() {
DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration();
// 获取OpenOffice 4的安装目录
String officeHome = getOfficeHome();
config.setOfficeHome(officeHome);
// 设置超时时间为5分钟
config.setTaskExecutionTimeout(1000 * 60 * 5L);
// 启动OpenOffice的服务
OfficeManager officeManager = config.buildOfficeManager();
officeManager.start();
return officeManager;
}
/**
* 转换文件
* @param inputFilePath
* 转换文件的路径及名称,例如:d:/test.doc
* @param outputFilePath
* 目标文件的路径及名称,例如:d:/test.pdf
* @param converter
*/
public void converterFile(String inputFilePath, String outputFilePath, OfficeDocumentConverter converter) {
File inputFile = new File(inputFilePath);
File outputFile = new File(outputFilePath);
// 假如目标路径不存在,则新建该路径
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
// 文件转换
converter.convert(inputFile, outputFile);
}
/**
* 获取输出文件
* @param inputFilePath
* 输入文件的位置及文件名称,如:"d:/test.docx"
* @return
* 默认的输出文件路径:如:"d:/test.pdf"
*/
public String getOutputFilePath(String inputFilePath) {
String outputFilePath = inputFilePath.substring(0,inputFilePath.lastIndexOf('.'))+".pdf";
return outputFilePath;
}
/**
* 获取inputFilePath的后缀名,如:"d:/test.pptx"的后缀名为:"pptx"
*
* @param inputFilePath
* @return
*/
public String getPostfix(String inputFilePath) {
return inputFilePath.substring(inputFilePath.lastIndexOf(".") + 1);
}
/**
* 检查文件是否是指定格式
* @param inputFilePath
* 输入文件的路径
* @return
* 是指定格式返回true ,否则返回 false
*/
public boolean isRigthFileFix(String inputFilePath){
String[] fixes =new String[]{"doc","docx","ppt","pptx"};
boolean flag = false;
String fix = getPostfix(inputFilePath);
for (String f : fixes) {
if(f.equalsIgnoreCase(fix)){
flag = true;
break;
}
}
return flag;
}
}
工具下载位置:https://pan.baidu.com/s/1brhhbdH
【文件预览】:
Office2PDF
----bin()
--------com()
----.settings()
--------org.eclipse.core.resources.prefs(80B)
--------org.eclipse.jdt.core.prefs(598B)
----src()
--------com()
----.project(386B)
----.classpath(863B)
----lib()
--------commons-io-1.3.1.jar(82KB)
--------commons-cli-1.0.jar(29KB)
--------jurt-2.3.0.jar(111KB)
--------unoil-2.3.0.jar(1.2MB)
--------juh-2.3.0.jar(58KB)
--------jodconverter-core-3.0-beta-4.jar(68KB)
--------ridl-2.3.0.jar(245KB)
--------jodconverter-cli-2.2.1.jar(5KB)
--------jodconverter-2.2.1.jar(31KB)
----readme.txt(116B)