1. 程式人生 > >Java使用poi將word轉換為html

Java使用poi將word轉換為html

使用poi將word轉換為html,支援doc,docx,轉換後可以保持圖片、樣式

1.匯入Maven包

<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>

2.轉換程式碼

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.xwpf.converter.core.BasicURIResolver;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.w3c.dom.Document;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class Test {
    // doc轉換為html
    void docToHtml() throws Exception {
        String sourceFileName = "C:\\doc\\test.doc";
        String targetFileName = "C:\\html\\test.html";
        String imagePathStr = "C:\\html\\image\\";
        HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(sourceFileName));
        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
        WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);
        // 儲存圖片,並返回圖片的相對路徑
        wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {
            try(FileOutputStream out = new FileOutputStream(imagePathStr + name)){
                 out.write(content);
            } catch (Exception e) {
                e.printStackTrace();
            } 
            return "image/" + name;
        });
        wordToHtmlConverter.processDocument(wordDocument);
        Document htmlDocument = wordToHtmlConverter.getDocument();
        DOMSource domSource = new DOMSource(htmlDocument);
        StreamResult streamResult = new StreamResult(new File(targetFileName));

        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer serializer = tf.newTransformer();
        serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        serializer.setOutputProperty(OutputKeys.INDENT, "yes");
        serializer.setOutputProperty(OutputKeys.METHOD, "html");
        serializer.transform(domSource, streamResult);
    }
    // docx轉換為html
    public void docxToHtml() throws Exception {
        String sourceFileName = "D:\\ac\\00.docx";
        String targetFileName = "D:\\ac\\test.html";
        String imagePathStr = "D:\\ac\\image\\";
        OutputStreamWriter outputStreamWriter = null;
        try {
            XWPFDocument document = new XWPFDocument(new FileInputStream(sourceFileName));
            XHTMLOptions options = XHTMLOptions.create();
            // 存放圖片的資料夾
            options.setExtractor(new FileImageExtractor(new File(imagePathStr)));
            // html中圖片的路徑
            options.URIResolver(new BasicURIResolver("image"));
            outputStreamWriter = new OutputStreamWriter(new FileOutputStream(targetFileName), "utf-8");
            XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();
            xhtmlConverter.convert(document, outputStreamWriter, options);
        } finally {
            if (outputStreamWriter != null) {
                outputStreamWriter.close();
            }
        }
    }

演示地址: https://www.xiaoyun.studio/app/preview.html

相關推薦

Java使用poiword轉換html

使用poi將word轉換為html,支援doc,docx,轉換後可以保持圖片、樣式 1.匯入Maven包 <dependency> <groupId>org.apache.poi</groupId> <artifactId&

使用poiword轉換html

import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.converter.WordToHtmlConverter; import org.apache.poi.xwpf.converter.core.BasicURI

javaword轉換html

public static void main(String[] args) throws Exception { String filePath = "C:/Users/Administrator/Desktop/92個診療方案及臨床路徑/"; File file

Java用OpenOfficeword轉換PDF

sts pre 成功 accep 存在 china ati url 基礎 本文在原文的基礎上有所修改,原文請參考: http://titanseason.iteye.com/blog/1471606 由於此blog不支持附件附件請到此處下載 http://my.oschin

美解決doc、docx格式word轉換Html

由於專案需要,需要線上預覽文件,所以就想轉換為htmL格式;  此專案為maven專案,引入的包可能需要一些時間;  maven專案轉換為eclipse專案命令是:mvn eclipse:eclipse,然後匯入到eclipse;  jar引入完成後,絕對1

js實現word轉換html

前言 最近接到一個需求,實現上傳一個word文件,然後將該word轉換成html丟給服務端存上。進行技術調研後發現有三種方法可以實現這個功能:ActiveXObject、docx2html、mammoth。 IE的 ActiveXObject var oWordApp=new ActiveX

使用poiexcel轉換html,適用本身有匯出excel的而現在需要新增網頁列印的功能

PoiExcelToHtmlUtil.java import org.apache.poi.POIXMLDocumentPart; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; imp

一種快速markdown轉換html的方法

在一些Java Web專案中需要用markdown來寫文章並儲存到資料庫中,從資料庫中讀取出來需要轉換為html格式的程式碼段才能正確顯示文章。 將markdown 轉換為 html 有很多種方法

html 中,中文轉換 html實體再輸出 即: 開頭的html實體編碼

將中文轉換為 html實體再輸出 編碼 /** * 可將中文轉換成 "&#" 開頭的html實體編碼 * * * @param str * @return */ public static String encode(String str) { cha

如何使用jacobword轉換PDF

一、程式碼實現功能介紹: word文件轉換為PDF檔案的功能。 二、使用的環境條件: 正是由於jacob的jni這種特性,所以執行jacob的機器上必須要有jacob.dll在系統的path中,而且還要有相應的被呼叫的com元件存在。 下面列表說明了本專案使用的軟體環境和一些

PDF轉換wordHTML,SVG,XPS並其儲存

本文我們將演示如何通過呼叫Spire.PDF提供的方法PdfDocument.SaveToStream()將PDF頁面轉換為HTML,Word,SVG,XPS,PDF並將它們儲存為流。從Spire.PDF版本4.3開始,它新支援轉換定義範圍的PDF頁面並將其儲存為流。 將PDF儲存為流 步驟

word文件轉換html、PDF等

在日常工作中我們常常要把資料匯入word後,在做列印功能,一般列印在前臺做的話會比在後臺做客戶體驗更好一些,這個時候交給前臺最好是html、pdf、或圖片格式的資料,我的另一篇部落格中講解了怎麼將PDF轉換成圖片,並且可以調整清晰度。 這些方法都是我在工作學習中在網路上借鑑各位前輩的經驗

C#Word文件轉換html

關閉 ssa gen ocx ont 文件 dhtml ebr name 1 using Microsoft.Office.Interop.Word; 2 using System; 3 using System.Collections.Generic;

phpxml文件轉換html

php將xml文件轉換為htmltest.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <arti

[Python程式設計]綜合性實驗: Java原始碼高亮 實現Java程式碼轉換html

前言 這個是大三下學期的Java課程設計,目前重構完成了程式碼轉換並輸出的部分.暫時還沒有打算完成視覺化介面. 程式碼不長,加起來也就100行左右(再次感受到Python的精簡),實現了對註釋,關鍵字,字串,一些運算子的高亮. 程式碼實現 import re cl

蘋果手機PDF檔案轉換HTML網頁的方法,簡單實用!

有時為了工作需要我們要將PDF轉換成HTML網頁檔案,便於嵌入網頁中且可以提取PDF中的圖片,那麼,如何將PDF轉換成HTML格式呢?今天小編就來和大家介紹PDF轉HTML操作方法,希望可以幫助到大家。 1:首先開啟手機,在AppStore裡搜尋需要的檔案轉換工

使用本地office安裝包進行檔案轉換操作 ,word\excel\ppt轉換html

一、把jacob-1.19.jar放在lib 二、jacob-1.19-x64.dll放在jdk的bin、jre的bin(一共三個地方) 三、把JacobUtils.java放在工具類,直接呼叫就行。 JacobUtils.java  如下: package com.

Word 用 VBA 函式數字轉換大寫金額

'自定義函式 NTDX 將數字金額轉換為財務要求的大寫金額(NTDX:Number To DaXie) Public Function NTDX(A As Variant) Set Excel = CreateObject("excel.Applicat

利用POIExcel文件轉換Html

        excel文件轉換為html其實和word轉html相類似,優點也很明顯。請參考 word轉html public static void convertExcel2Html(String excelFilePath,String htmlFilePat

ABAP內表資料轉換HTML格式的檔案

TYPES: BEGIN OF TY_VBAP,          VBELN TYPE VBELN,          POSNR TYPE POSNR,          MATNR TYPE MATNR,        END OF TY_VBAP.*-ALL rel