Java如何把文档转换成PDF
2018-03-01 10:15
561 查看
分享知识 传递快乐
1、先在网上下载OpenOffice,并安装。2、引入以下jar:
commons-cli-1.1.jar
commons-io-1.4.jar
jodconverter-core-3.0-beta-4.jar
juh-3.2.1.jar
jurt-3.2.1.jar
ridl-3.2.1.jar
unoil-3.2.1.jar
如果有新的jar,也可以引入新的jar。
代码如下:package com.singleton;
import java.io.File;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
import com.xh.Constant;
/**
*
* @author H.Yang
* @date 2017年9月8日
*/
public class SingleOpenOffice {
private static SingleOpenOffice start = new SingleOpenOffice();
private static OfficeManager officeManager;
// 获取唯一可用的对象
public static SingleOpenOffice getStart() {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
System.out.println("准备启动服务....");
configuration.setOfficeHome(FileSuffixType.FILEPATH.getName()); // 设置OpenOffice.org安装目录
configuration.setPortNumber((int) FileSuffixType.PORT.getValue()); // 设置转换端口,默认为8100
configuration.setTaskExecutionTimeout(Long.valueOf(String.valueOf(FileSuffixType.EXECUTE_OVERTIME.getValue())));
configuration.setTaskQueueTimeout(Long.valueOf(String.valueOf(FileSuffixType.QUEUE_OVERTIME.getValue())));
officeManager = configuration.buildOfficeManager();
officeManager.start(); // 启动服务
System.out.println("office服务启动成功!");
return start;
}
/**
* 文档转换
* <hr>
* 将doc,docx,xls,xlsx,ppt,pptx,txt等文档转换成PDF文档,如果不指定输出地址默认当前文件地址
*
* @author H.Yang
* @date 2016年12月13日
* @explain
*
* @param inputFilePath
* - 转换文件地址(必须)
* @param outputFilePath
* - 输出地址(可空)
* @param newFileName
* - 新文件名(可空)
* @return
*/
public String execute2Pdf(String inputFilePath, String outputFilePath, String newFileName) {
File inputFile = new File(inputFilePath);
String fileName = inputFile.getName();
String prefix = fileName.substring(fileName.lastIndexOf(".") + 0);
String outputPath = null;
boolean isTrue = false;
if (!inputFile.exists()) {
System.out.println("文件不存在!");
return null;
}
for (String name : Constant.FILE_SUFFIX) {
if (fileName.endsWith(name)) {
isTrue = true;
break;
}
}
if (!isTrue) {
System.out.println("文件格式错误");
return null;
}
if (outputFilePath != null) {
outputPath = newFileName == null ? outputFilePath + fileName.replace(prefix, Constant.PDF_SUFFIX) : outputFilePath
+ fileName.replace(fileName, newFileName) + Constant.PDF_SUFFIX;
} else {
outputPath = newFileName == null ? inputFile.getPath().replace(prefix, Constant.PDF_SUFFIX) : inputFile.getPath().replace(fileName, newFileName)
+ Constant.PDF_SUFFIX;
}
File outputFile = new File(outputPath);
if (!outputFile.exists()) {
// 执行方法服务功能
execute(inputFile, outputFile);
} else {
System.out.println("文件已存在");
}
return outputPath;
}
/**
* 执行方法服务功能
*
* @author H.Yang
* @date 2016年12月13日
* @explain
*
* @param inputFile
* @param outputFile
*/
private static void execute(File inputFile, File outputFile) {
long startTime = System.currentTimeMillis();// 获取开始时间
try {
System.out.println("进行文档转换转换:" + inputFile + " --> " + outputFile);
OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
converter.convert(inputFile, outputFile);
System.out.println("Office转换成功");
} catch (Exception e) {
getStop();
e.printStackTrace();
}
long endTime = System.currentTimeMillis(); // 获取结束时间
System.out.println("程序运行时间: " + (endTime - startTime) / 1000 + "s");
}
public static void getStop() {
if (officeManager != null) {
officeManager.stop();
}
System.out.println("office关闭成功!");
}
}
源码下载:点击打开链接
如有不足或新的想法请留言--分享知识 传递快乐。
相关文章推荐
- 如何将man手册转换为pdf文档?
- Java如何操作Word, Excel, PDF文档(3)
- java如何把excel转换成pdf
- Java如何操作Word, Excel, PDF文档?
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- Java如何操作Word, Excel, PDF文档(2)
- Java如何操作Word, Excel, PDF文档
- 如何将pdf转换成word文档,文件格式转换器选择
- 如何在线把一个HTML页面转换成一个PDF文档?
- Java利用OpenOffice将word等office文档转换成PDF
- PDF文档如何转换为PPT
- Java如何操作Word, Excel, PDF文档(1)
- Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF
- java将office文档pdf文档转换成swf文件在线预览
- N多JPG图片如何转换成PDF文档
- ASP.NET如何将Excel文档转换成pdf
- Java如何操作Word, Excel, PDF文档
- 关于XML文档和JAVA中的JTree之间如何转换的问题
- Java如何操作Word, Excel, PDF文档
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。