1. 程式人生 > >java執行command並通過libreoffice軟體的方式將word轉化成HTML的詳細步驟解析

java執行command並通過libreoffice軟體的方式將word轉化成HTML的詳細步驟解析

一、實現程式碼 :

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開啟內容如下(不同檔案內容不同):