package com.qxueyou.scc.base.util; import java.io.File; import com.artofsolving.jodconverter.DocumentConverter; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; /** * Îļþת»»ÎªpdfµÄ¹¤¾ßÀà * * @author lyl * */ public class docConverterUtil { @SuppressWarnings("unused") private String fileString; // (´ýת»»ÎļþµÄ¸ù·¾¶) @SuppressWarnings("unused") private String outputPath = ""; // pdfÊä³ö·¾¶ £¬Èç¹û²»ÉèÖþÍÊä³öÔÚĬÈϵÄλÖà @SuppressWarnings("unused") private String fileName; private File pdfFile; private File docFile; public docConverterUtil(String fileString) { ini(fileString); } /** * ¿É×Ô¶¨ÒåÉèÖÃת»»Îļþȫ·¾¶Ãû * * @param fileString */ public void setFile(String fileString) { ini(fileString); } /** * ³õʼ»¯ * * @param fileString */ private void ini(String fileString) { this.fileString = fileString; docFile = new File(fileString); } /** * ÉèÖÃÊä³ö·¾¶ */ public void setOutputPath(String outputPath) { this.outputPath = outputPath; if (!outputPath.equals("")) { pdfFile = new File(outputPath + ".pdf"); /* * System.out.println(fileName); String realName = * fileString.substring(fileName.lastIndexOf("/")+1); * System.out.println(realName); if (outputPath.charAt(outputPath.length()-1) == * '/') { pdfFile = new File(outputPath + realName + ".pdf"); } else { pdfFile = * new File(outputPath+"/" + realName + ".pdf"); } */ } } /** * תΪPDF * * @param file */ @SuppressWarnings("unused") public void conver() throws Exception { if (docFile.exists()) { if (!pdfFile.exists()) { String OpenOffice_HOME = "C:\\Program Files (x86)\\OpenOffice 4"; // Èç¹û´ÓÎļþÖжÁÈ¡µÄURLµØÖ·×îºóÒ»¸ö×Ö·û²»ÊÇ '\'£¬ÔòÌí¼Ó'\' if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') { OpenOffice_HOME += "\\"; } // Æô¶¯OpenOfficeµÄ·þÎñ String command = OpenOffice_HOME + "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""; Process pro = Runtime.getRuntime().exec(command); OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100); try { connection.connect(); DocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(docFile, pdfFile); connection.disconnect(); System.out.println("dfת»»³É¹¦£¬±£´æÂ·¾¶£º" + pdfFile.getPath()); } catch (java.net.ConnectException e) { e.printStackTrace(); System.out.println("ת»»Ê§°Ü£¬openoffice·þÎñδÆô¶¯£¡"); throw e; } catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) { e.printStackTrace(); System.out.println("¶Áȡת»»Îļþʧ°Ü"); throw e; } catch (Exception e) { e.printStackTrace(); throw e; } } else { System.out.println("ÎļþÒÑ´æÔÚ£¬²»ÐèҪת»»"); } } else { System.out.println("ÐèҪת»»µÄÎĵµ²»´æÔÚ£¬ÎÞ·¨×ª»»"); } } /** * ·µ»ØpdfÎļþ·¾¶ * * @return */ public String getpdfPath() { if (pdfFile.exists()) { String tempString = pdfFile.getPath(); tempString = tempString.replaceAll("\\\\", "/"); return tempString; } else { return ""; } } public static void main(String[] args) throws Exception { String fileString = "D:/upload/ppt4.ppt"; docConverterUtil dcu = new docConverterUtil(fileString); dcu.setOutputPath("D:/upload/a"); dcu.conver(); System.out.println(dcu.getpdfPath()); } }