1 packagecom.zdxy.shangxiaofei;2
3 importjava.io.File;4 importjava.io.FileNotFoundException;5
6 importorg.artofsolving.jodconverter.OfficeDocumentConverter;7 importorg.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;8 importorg.artofsolving.jodconverter.office.OfficeManager;9
10
11
12 public classMsOffice2Pdf {13
14 //jodconverter-core-30-beta-4.jar包中的一个对象
15 private staticOfficeManager officeManager;16 //服务器上OpenOffice软件安装路径
17 private static String OFFICE_HOME = "C:\\Program Files (x86)\\OpenOffice 4";18 //转化端口
19 private static int port[] = { 8100};20
21
22 /**
23 * 将MsOffice文档或者txt文档转换成pdf文档的方法24 * @Title: convert2PDF25 * @Description: TODO(这里用一句话描述这个方法的作用)26 *@paraminputFile27 *@paramoutputFile28 *@throwsFileNotFoundException29 *@returnvoid 返回类型30 *@author尚晓飞31 * @date 2014-8-19 上午11:29:2832 */
33 public static void convert2PDF(String inputFile, String outputFile) throwsFileNotFoundException {34
35 //判断输入的文件路径是否存在
36 File file=newFile(inputFile);37 boolean flag=file.exists();38 if(!flag){39 System.out.println("指定转换的文件不存在");40 return;41 }42
43
44 String fileName = null;45
46 //如果传进来的txt文件,则需将txt文件转换成odt文件,才能转换成pdf文件
47 String fileName1 = inputFile.substring(0, inputFile.lastIndexOf("."));48 if(inputFile.endsWith("txt")){49 String odtFile = fileName1+".odt";50 if(newFile(odtFile).exists()){51 System.out.println("odt文件存在");52 inputFile =odtFile;53 }else{54 FileUtil.copyFile(inputFile, odtFile);55 inputFile =odtFile;56 }57 }58 startService();59 System.out.println("进行文档转换:" + inputFile + " --> " +outputFile);60 OfficeDocumentConverter converter = newOfficeDocumentConverter(61 officeManager);62 converter.convert(new File(inputFile), newFile(outputFile));63 stopService();64 System.out.println();65
66 }67
68 /**
69 * 打开OpenOffice软件70 * @Title: startService71 * @Description: TODO(这里用一句话描述这个方法的作用)72 *@returnvoid 返回类型73 *@author尚晓飞74 * @date 2014-8-19 上午11:11:0675 */
76 public static voidstartService() {77 DefaultOfficeManagerConfiguration configuration = newDefaultOfficeManagerConfiguration();78 try{79 System.out.println("准备启动openoffice服务....");80 configuration.setOfficeHome(OFFICE_HOME);// //设置OpenOffice.org安装目录
81 configuration.setPortNumbers(port); //设置转换端口,默认为8100
82 configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//设置任务执行超时为5分钟
83 configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//设置任务队列超时为24小时
84
85 officeManager =configuration.buildOfficeManager();86 officeManager.start(); //启动服务
87 System.out.println("office转换服务启动成功!");88 } catch(Exception ce) {89 System.out.println("office转换服务启动失败" +ce);90 ce.printStackTrace();91 }92 }93
94 /**
95 * 关闭OpenOffice软件96 * @Title: stopService97 * @Description: TODO(这里用一句话描述这个方法的作用)98 *@returnvoid 返回类型99 *@author尚晓飞100 * @date 2014-8-19 上午11:15:24101 */
102 public static voidstopService() {103 System.out.println("准备关闭openoffice转换服务....");104 if (officeManager != null) {105 officeManager.stop();106 }107 System.out.println("关闭openoffice转换服务成功!");108 }109
110
111
112 /**
113 * 测试文件转换114 * @Title: main115 * @Description: TODO(这里用一句话描述这个方法的作用)116 *@paramargs117 *@returnvoid 返回类型118 *@author尚晓飞119 * @date 2014-8-19 上午11:23:08120 */
121 public static voidmain(String[] args) {122 //TODO Auto-generated method stub
123 String inputFile = "E:\\lantian.ppt";124 String outputFile = "E:\\4.pdf";125
126 try{127 convert2PDF(inputFile, outputFile);128 } catch(FileNotFoundException e) {129 //TODO Auto-generated catch block
130 e.printStackTrace();131 }132 }133 }