1. 程式人生 > >word 轉html,實用版

word 轉html,實用版

第一種:

匯入pom.xml

<dependency>
    <groupId>net.sf.jacob-project</groupId>			
    <artifactId>jacob</artifactId>	
    <version>1.14.3</version>			
</dependency>

java程式碼:

private void wordToHtml(String wordFile, String htmlFile) {
		// TODO Auto-generated method stub
    	// 啟動word應用程式(Microsoft Office Word 2003)
        ActiveXComponent app = new ActiveXComponent("Word.Application");
        System.out.println("*****正在轉換...*****");
        try  
        {	
        	// 設定word應用程式不可見  
            app.setProperty("Visible", new Variant(false));  
            // documents表示word程式的所有文件視窗,(word是多文件應用程式)
            Dispatch docs = app.getProperty("Documents").toDispatch();  
            // 開啟要轉換的word檔案
            Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { wordFile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();   
            // 作為html格式儲存到臨時檔案
            Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { htmlFile, new Variant(8) }, new int[1]);   
            // 關閉word檔案
            Dispatch.call(doc, "Close", new Variant(false));   
        }   
        catch (Exception e)   
        {   
            e.printStackTrace();   
        }   
        finally  
        {   
        	//關閉word應用程式
            app.invoke("Quit", new Variant[] {});   
        } 
        System.out.println("*****轉換完畢********");
	}

第二種:POI

pom.xml配置

poi word-> html
		<dependency> 
	     <groupId>org.apache.poi</groupId> 
	     <artifactId>poi</artifactId> 
	     <version>3.14</version> 
	    </dependency> 
	    <dependency> 
	     <groupId>org.apache.poi</groupId> 
	     <artifactId>poi-scratchpad</artifactId> 
	     <version>3.14</version> 
	    </dependency> 
	    <dependency> 
	     <groupId>org.apache.poi</groupId> 
	     <artifactId>poi-ooxml</artifactId> 
	     <version>3.14</version> 
	    </dependency> 
	    <dependency> 
	     <groupId>fr.opensagres.xdocreport</groupId> 
	     <artifactId>xdocreport</artifactId> 
	     <version>1.0.6</version> 
	    </dependency> 
	    <dependency> 
	     <groupId>org.apache.poi</groupId> 
	     <artifactId>poi-ooxml-schemas</artifactId> 
	     <version>3.14</version> 
	    </dependency> 
	    <dependency> 
	     <groupId>org.apache.poi</groupId> 
	     <artifactId>ooxml-schemas</artifactId> 
	     <version>1.3</version> 
	    </dependency>

java程式碼:

private void docxTohtml(String wordFile, String htmlFile, String distPath) {
		OutputStreamWriter outputStreamWriter = null;
		
		try {
			XWPFDocument document = new XWPFDocument(new FileInputStream(wordFile));
			XHTMLOptions options = XHTMLOptions.create();
			options.setExtractor(new FileImageExtractor(new File(distPath)));
			options.URIResolver(new BasicURIResolver("../../upload/image"));
			outputStreamWriter = new OutputStreamWriter(new FileOutputStream(htmlFile), "utf-8");
			XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();
			xhtmlConverter.convert(document, outputStreamWriter, options);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (outputStreamWriter != null) {
				try {
					outputStreamWriter.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}