国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java實(shí)現(xiàn)word轉(zhuǎn)html

這篇具有很好參考價(jià)值的文章主要介紹了java實(shí)現(xiàn)word轉(zhuǎn)html。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

現(xiàn)有的需求是前端導(dǎo)入word文件,然后需要在瀏覽器上展示出來,實(shí)現(xiàn)方案是將前端導(dǎo)入的word轉(zhuǎn)成html的形式,再輸出給前端,廢話不多說,直接上代碼.

需要用到的依賴

<!-- WordToHtml .doc .odcx  poi  -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.1.2</version>
</dependency>

<!-- 操作excel的庫 注意版本保持一致 poi poi-ooxml  poi-scratchpad -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

<dependency>
    <groupId>fr.opensagres.xdocreport</groupId>
    <artifactId>fr.opensagres.poi.xwpf.converter.xhtml</artifactId>
    <version>2.0.2</version>
</dependency>

?代碼實(shí)現(xiàn)

public static String word2007ToHtml(MultipartFile file) throws IOException {
        String html = null;
        if (file.isEmpty() || file.getSize() <= 0) {
            log.error("Sorry File does not Exists!");
            return null;
        } else {
            /* 判斷是否為docx文件 */
            if (Objects.requireNonNull(file.getOriginalFilename()).endsWith(".docx") || file.getOriginalFilename().endsWith(".DOCX")) {
                // 1)加載word文檔生成XWPFDocument對象
                @Cleanup FileInputStream in = (FileInputStream) file.getInputStream();
                XWPFDocument document = new XWPFDocument(in);
                // 2)解析XHTML配置(這里設(shè)置IURIResolver來設(shè)置圖片存放的目錄)
                XHTMLOptions options = XHTMLOptions.create();
                //3.將word中圖片保存到oss中
                options.setImageManager(SpringUtil.getBean(ImageManagerImpl.class));
                options.setIgnoreStylesIfUnused(false);
                options.setFragment(true);
                // 3)將XWPFDocument轉(zhuǎn)換成XHTML
                @Cleanup ByteArrayOutputStream baos = new ByteArrayOutputStream();
                XHTMLConverter.getInstance().convert(document, baos, options);
                html = new String(baos.toByteArray(), StandardCharsets.UTF_8);
                System.out.println(html);

            } else {
                System.out.println("Enter only as MS Office 2007+ files");
                throw new BizException("word文檔必須以.docx結(jié)尾");
            }
        }
        return html;
    }

注意事項(xiàng)

1.這個(gè)方法只支持docx結(jié)尾的文檔,doc文檔大同小異,如果有需要可以嘗試自己寫一下

2.和圖片上傳有關(guān)的這個(gè)類ImageManagerImpl,我就不寫出來了,涉及公司的一些東西,如果你要用,只需要寫個(gè)類繼承一下 ImageManager 這個(gè)類,然后重寫一下它的方法,也就是寫一下你圖片上傳邏輯之類的就行了,如:

 private byte[] picture;
    private String suffix;
    private String fileName;
    public ImageManagerImpl() {
        super(new File(""), "");
    }


    @Override
    public void extract(String imagePath, byte[] imageData){
        this.fileName = imagePath.split("\\.")[0];
        this.suffix = "." + imagePath.split("\\.")[1];
        this.picture = imageData;
    }

    @SneakyThrows
    @Override
    public String resolve(String uri) {

        @Cleanup InputStream inputStream = new ByteArrayInputStream(picture);
        MultipartFile fileResult = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
        return uploadFile(fileResult,UUID.randomUUID().toString().replaceAll("-", "")+suffix);

    }
3.生成后的html這個(gè)時(shí)候不能直接給前端,因?yàn)橹苯咏o前端的話會在傳輸過程中格式發(fā)生一些詭異的變化,我這里處理的方法是將html給base64加密,然后讓前端去解析,這樣就沒問題了.

4. 其實(shí)這里生成的html都是一行行的div標(biāo)簽,并沒有頭和體的標(biāo)簽,雖然也能展示,但有些特殊用法的時(shí)候就不太行了,如html轉(zhuǎn)PDF的時(shí)候,這個(gè)時(shí)候要么在生成html的時(shí)候加上去,要么在轉(zhuǎn)PDF的時(shí)候加上去

htmlStr = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" +
        "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
        "\t<head></head><body style=\"font-family:SimSun;\">"+htmlDecode+"\t</body>\n" +
        "</html>";

注意這里是最后將html里面的字體全部統(tǒng)一成一種了,為了后期轉(zhuǎn)PDF方便

好了,暫時(shí)就這么多,后續(xù)有時(shí)間再補(bǔ)充文章來源地址http://www.zghlxwxcb.cn/news/detail-610364.html

到了這里,關(guān)于java實(shí)現(xiàn)word轉(zhuǎn)html的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端html-docx實(shí)現(xiàn)html轉(zhuǎn)word,預(yù)覽并導(dǎo)出文件

    前端html-docx實(shí)現(xiàn)html轉(zhuǎn)word,預(yù)覽并導(dǎo)出文件

    使用工具:html-docx 優(yōu)勢:圖片、圖表能直接預(yù)覽并轉(zhuǎn)為base64導(dǎo)出,省去后端難以實(shí)現(xiàn)圖表的生成后插入的麻煩 劣勢:適合一些簡單的word模板導(dǎo)出(比如只有標(biāo)題正文簡單的表格圖表圖片的文檔),復(fù)雜的可以直接忽略。比如:紙張大小、紙張方向、css大部分樣式等等(經(jīng)本

    2024年02月16日
    瀏覽(30)
  • 幾行代碼,輕松教你用Java 將 Word 文檔轉(zhuǎn)換為 HTML

    幾行代碼,輕松教你用Java 將 Word 文檔轉(zhuǎn)換為 HTML

    Aspose.Words?是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式處理,并允許將各類文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像

    2024年02月10日
    瀏覽(26)
  • Java處理doc類型的Word文檔轉(zhuǎn)換成html(按順序保留格式+圖片)

    Java處理doc類型的Word文檔轉(zhuǎn)換成html(按順序保留格式+圖片)

    最新有個(gè)新需求,就是doc文檔轉(zhuǎn)換html內(nèi)容倒不是很難,給大家分享一下,總體思路就是按doc轉(zhuǎn)html的思路來走,唯一缺點(diǎn)是不會自動轉(zhuǎn)換圖片,圖片是要手動轉(zhuǎn)成base64,默認(rèn)是有html、body、head、meta等等標(biāo)簽,我這里都用正則處理掉了。 需要注意的是: .docx 格式的 Word 文檔是

    2024年02月03日
    瀏覽(30)
  • 文檔在線預(yù)覽(二)word、pdf文件轉(zhuǎn)html以實(shí)現(xiàn)文檔在線預(yù)覽

    文檔在線預(yù)覽(二)word、pdf文件轉(zhuǎn)html以實(shí)現(xiàn)文檔在線預(yù)覽

    @ 目錄 一、前言 1、aspose 2 、poi + pdfbox 3 spire 二、將文件轉(zhuǎn)換成html字符串 1、將word文件轉(zhuǎn)成html字符串 1.1 使用aspose 1.2 使用poi 1.3 使用spire 2、將pdf文件轉(zhuǎn)成html字符串 2.1 使用aspose 2.2 使用 poi + pbfbox 2.3 使用spire 3、將excel文件轉(zhuǎn)成html字符串 3.1 使用aspose 3.2 使用poi + pdfbox 3.3 使用

    2024年02月06日
    瀏覽(89)
  • ElasticSearch 實(shí)現(xiàn) 全文檢索 支持(PDF、TXT、Word、HTML等文件)通過 ingest-attachment 插件實(shí)現(xiàn) 文檔的檢索

    ElasticSearch 實(shí)現(xiàn) 全文檢索 支持(PDF、TXT、Word、HTML等文件)通過 ingest-attachment 插件實(shí)現(xiàn) 文檔的檢索

    Attachment 插件是 Elasticsearch 中的一種插件,允許將各種二進(jìn)制文件(如PDF、Word文檔等)以及它們的內(nèi)容索引到 Elasticsearch 中。插件使用 Apache Tika 庫來解析和提取二進(jìn)制文件的內(nèi)容。通過使用 Attachment 插件,可以輕松地在 Elasticsearch 中建立全文搜索功能,而無需事先轉(zhuǎn)換二進(jìn)制

    2024年02月05日
    瀏覽(22)
  • java實(shí)現(xiàn)pdf轉(zhuǎn)word

    1.java實(shí)現(xiàn)pdf轉(zhuǎn)word。 2.純免費(fèi)開源。 3.pdf解析完會生成word文件和圖片文件夾。 4.無頁碼限制,文本類型生成到word中,圖片生成到圖片文件夾中。 5.弊端:需手動將圖片與文本整合成一個(gè)word文件。 僅提供一個(gè)pdf轉(zhuǎn)word的實(shí)現(xiàn)方案,代碼粗糙,老鐵輕噴。 jar包地址:https://downlo

    2024年03月10日
    瀏覽(20)
  • Java實(shí)現(xiàn)動態(tài)生成word報(bào)告

    Java實(shí)現(xiàn)動態(tài)生成word報(bào)告

    1.準(zhǔn)備好docx文件模板 舉例:動態(tài)生成表格數(shù)據(jù),以下是list數(shù)組類型的freemarker語法 將寫好的word模板加入到templates目錄下 2.在pom.xml中導(dǎo)入相關(guān)依賴 3.關(guān)于Minio的介紹 Minio 是一個(gè)開源的對象存儲服務(wù)器,可用于存儲和訪問海量數(shù)據(jù)。以下是 Minio 的基本用法: (1)安裝 Minio 首先

    2024年02月09日
    瀏覽(17)
  • Java 實(shí)現(xiàn)導(dǎo)出 Word 文檔的方法詳解

    Java 實(shí)現(xiàn)導(dǎo)出 Word 文檔的方法詳解

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 在 Java 應(yīng)用程序中,有時(shí)候我們需要將數(shù)據(jù)導(dǎo)出為 Word 文檔,以便進(jìn)行文檔的編輯、打印或共享。本文將介紹如何

    2024年02月15日
    瀏覽(17)
  • java關(guān)于word轉(zhuǎn)PDF的實(shí)現(xiàn)

    java關(guān)于word轉(zhuǎn)PDF的實(shí)現(xiàn)

    ?????? word轉(zhuǎn)PDF這個(gè)功能在工作中還是非常常用的,但是word轉(zhuǎn)PDF大部分都是需要收費(fèi)的,或者說就是對頁面的轉(zhuǎn)換頁數(shù)有限制,那么身為程序員當(dāng)然是能白嫖就白嫖的了,那么具體怎么實(shí)現(xiàn)呢,小編這里有幾種實(shí)現(xiàn)方式,希望可以幫到你。 ??????? 1.第一種則是使用asp

    2024年04月23日
    瀏覽(19)
  • linux下java實(shí)現(xiàn)word 轉(zhuǎn)pdf

    documents4j 是一個(gè)跨平臺的文檔轉(zhuǎn)換庫,并且可以在 Linux 上進(jìn)行 Word 轉(zhuǎn) PDF 的操作。 它利用 Microsft Office 的 APIs 來進(jìn)行文檔轉(zhuǎn)換,因此需要在 Linux 上安裝 OpenOffice/LibreOffice 編輯器。 以下是在 Linux 環(huán)境下執(zhí)行 Word 轉(zhuǎn) PDF 的基本步驟: Ubuntu:使用以下命令安裝 CentOS:使用以下命令

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包