java執行command並通過libreoffice軟體的方式將word轉化成HTML的詳細步驟解析
阿新 • • 發佈:2018-12-18
一、實現程式碼 :
import org.apache.commons.io.IOUtils; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.UUID; /** * 將word文件通過java呼叫命令的方式轉化成HTML */ public class DocConvertDemo { public static void main(String[] args) throws IOException { /** * D:\soft\LibreOffice_6.0.6\program\soffice:表示libreoffice安裝路徑 * D:\Desktop\DocCloud\testDir\hadoopInstall.doc:表示要轉化的word檔案 */ String fileName= "D:\\Desktop\\DocCloud\\testDir\\hadoopInstall.doc"; String command = "D:\\soft\\LibreOffice_6.0.6\\program\\soffice --headless --invisible --convert-to html "+fileName; /** *workDir:表示轉化之後的HTML檔案儲存的路徑地址 */ String workDir = "D:\\tmp\\doccloud-Administrator\\.stage\\"+UUID.randomUUID().toString()+"\\"; File file = new File(workDir); //建立目錄--因為是UUID所以不用判斷目錄一定不存在 file.mkdirs(); /** * command:命令 * null:作業系統執行程式時通過envp 引數將系統環境變數傳遞給程式 * file:命令在那個路徑下執行 */ //返回過程物件--Process Process exec = Runtime.getRuntime().exec(command,null,file); //錯誤資訊 InputStream errorStream = exec.getErrorStream(); //結果資訊 InputStream inputStream = exec.getInputStream(); //IOUtils-直接將流轉化成字串 String error = IOUtils.toString(errorStream); String result = IOUtils.toString(inputStream); //列印資訊 System.out.println(error); System.out.println(result); } }
二、測試結果
控制檯
磁碟上
HTML開啟內容如下(不同檔案內容不同):