700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java word openoffice_java 使用openoffice 转换文档 成.pdf 实现预览效果

java word openoffice_java 使用openoffice 转换文档 成.pdf 实现预览效果

时间:2018-06-25 13:09:25

相关推荐

java word openoffice_java  使用openoffice 转换文档 成.pdf 实现预览效果

1. 下载openoffice 地址

/s/1dfpoG6zlawoW1pqpDvBL0A 密码: v4ej

如果上面的地址无法访问请访问这个地址:下载地址如下:/

2.jodconverter-2.2.2.zip 下载地址:

/projects/jodconverter/files/JODConverter/

3.JODConverter 下的jar包访问项目lib包中。

4. 使用openoffice的工具类

package com.rdkl.utils;

import java.io.File;

import mons.io.FilenameUtils;

import org.apache.log4j.Logger;

import org.artofsolving.jodconverter.OfficeDocumentConverter;

import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;

import org.artofsolving.jodconverter.office.ExternalOfficeManagerConfiguration;

import org.artofsolving.jodconverter.office.OfficeException;

import org.artofsolving.jodconverter.office.OfficeManager;

import com.mon.SysConfigManager;

public class PdfUtils {

private static final Logger logger = Logger.getLogger(PdfUtils.class

.getName());

@SuppressWarnings("static-access")

private static String officeHome = "这里写的是你的openoffice的安装地址";

@SuppressWarnings("static-access")

private static int port = "这里的内容是根据你的系统选择不同的端口号,windows系统的端口号是8100";

private static OfficeManager officeManager;

// 尝试连接已存在的服务器

private static boolean reconnect(){

try {

// 尝试连接openoffice的已存在的服务器

ExternalOfficeManagerConfiguration externalProcessOfficeManager = new ExternalOfficeManagerConfiguration();

externalProcessOfficeManager.setConnectOnStart(true);

externalProcessOfficeManager.setPortNumber(8100);

officeManager = externalProcessOfficeManager.buildOfficeManager();

officeManager.start();

return true;

} catch (OfficeException e) {

e.printStackTrace();

return false;

}

}

// 开启新的openoffice的进程

private static void start() {

logger.debug("启动OpenOffice服务");

try {

DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();

configuration.setOfficeHome(officeHome);// 安装地址

configuration.setPortNumbers(port);// 端口号

configuration.setTaskExecutionTimeout(1000 * 60 * 5);// 设置任务执行超时为5分钟

configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24);// 设置任务队列超时为24小时

officeManager = configuration.buildOfficeManager();

officeManager.start(); // 启动服务

} catch (Exception e) {

logger.error("启动OpenOffice服务出错" + e);

}

}

// 使用完需要关闭该进程

private static void stop() {

logger.debug("关闭OpenOffice服务");

try {

if (officeManager != null)

officeManager.stop();

} catch (Exception e) {

logger.error("关闭OpenOffice服务出错" + e);

}

}

public static File convertToPdf(String input) {

File inputFile = null;

File outFile = null;

try {// 如果已存在的服务不能连接或者不存在服务,那么开启新的服务if(!reconnect()){

start();// 开启服务}// filenameUtils是Apache对java io的封装。FilenameUtils.separatorsToSystem:转换分隔符为当前系统分隔符/ FilenameUtils.getFullPath:获取文件的完整目录

// FilenameUtils.getBaseName:取出文件目录和后缀名的文件名

String output = FilenameUtils.separatorsToSystem(FilenameUtils.getFullPath(input) + FilenameUtils.getBaseName(input) + ".pdf");

inputFile = new File(input);

outFile = new File(output);

logger.info("开始转换文档:" + input + "=>" + output);

OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);

converter.convert(inputFile,outFile); // 转换文档} catch (Exception e) {

logger.error("转换文档出错" + e);

outFile = null;

}finally{

logger.info("结束转换文档");

stop();

}

return outFile;

} // 测试工具类是否成功

public static void main(String[] args) {

//PdfUtils.convertToPdf("E:/test.ppt");

File sf = new File("E:/test.ppt");System.out.println(sf.getPath());

}

}

原文:/bb1008/p/10019576.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。