【JAVA poi-tl-ext 富文本轉word】

富文本轉word

  • 環境
  • 使用poi-tl-ext的原因
  • 富文本轉word代碼

環境

  • jdk 1.8
<dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version>
</dependency>
  • poi-tl-ext已經包含了poi,poi-tl等jar包,所以無需重復導入
  • poi-tl文檔鏈接
  • poi-tl-ext github鏈接

使用poi-tl-ext的原因

  • 對比poi原生來說簡單方便操作
  • 對比收費軟件來說,開源免費,而且效果也很牛

富文本轉word代碼

public class RichTextParser {public static void parseToDocx(String content, FileOutputStream fileOutputStream) throws IOException {HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();Configure configure = Configure.builder().bind("key", htmlRenderPolicy).build();Map<String, Object> data = new HashMap<>();data.put("key", content);XWPFTemplate.compile("D://input.docx", configure).render(data).writeAndClose(fileOutputStream);}
}
  • content 富文本內容
  • fileOutputStream 輸出流,例如輸出到本地磁盤D://2.docx上面
  • D://input.docx 是一個模板docx
    在這里插入圖片描述
  • key 是用來綁定富文本內容(可以任意起名字只要能和代碼模板對應即可),由于我需要導出的富文本內容是隨機且不定格式,所以使用一個key包裹即可
  • HtmlRenderPolicy 就是poi-tl-ext中富文本導出為word的操作插件,這里需要吹捧一下作者,真的好牛
  • poi-tl 還存在各種其他插件,例如表格插件等,適用于各種導出word的操作,還可以自定義插件,也是牛的
  • 富文本部分內容如下
<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><strong>xxx年度安全生產教育培訓工作計劃</strong></span></p>\n" +"<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 10pt; color: #e67e23;\">(模板,可上傳企業自有制度或修改模板)</span></span></p>\n" +"<p>&nbsp;</p>\n" +"<p><span style=\"font-size: 14pt;\">&nbsp; &nbsp; &nbsp; &nbsp;<span style=\"color: #ba372a;\">為進一步規范公司安全宣傳和教育培訓工作,不斷提高公司員工安全生產意識和安全素質,增強安全生產法制觀念,有力推動公司安全生產基礎建設、安全生產誠信建設、安全生產標準化建設和企業安全文化建設,確保今年的安全生產目標指標的實現,特制定本計劃如下:</span></span></p>
  • 導出內容如下
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44484.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44484.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44484.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可靈重大升級!新增Web端上線、首尾幀控制、單次生成視頻時長增加至10s!

快手視頻生成大模型“可靈”&#xff08;Kling&#xff09;&#xff0c;作為全球首個真正用戶可用的視頻生成大模型&#xff0c;自面世以來&#xff0c;憑借其無與倫比的視頻生成效果&#xff0c;在全球范圍內贏得了用戶的熱烈追捧與高度評價。截至目前&#xff0c;申請體驗其內…

修正版頭像上傳組件

修正版頭像上傳組件 文章說明核心源碼展示運行效果展示源碼下載 文章說明 在頭像剪切上傳一文中&#xff0c;我采用div做裁剪效果&#xff0c;感覺會有一些小問題&#xff0c;在昨天基于canvas繪制的功能中改進了一版&#xff0c;讓代碼變得更簡潔&#xff0c;而且通用性相對高…

永恒之藍:一場網絡風暴的啟示

引言 在網絡安全的漫長歷史中&#xff0c;“永恒之藍”&#xff08;EternalBlue&#xff09;是一個不可忽視的里程碑事件。它不僅揭示了網絡世界的脆弱性&#xff0c;還促使全球范圍內對網絡安全的重視達到了前所未有的高度。本文將深入探討“永恒之藍”漏洞的起源、影響及其對…

【WebGIS】從設計層面設計系統

本項目在通過現代信息技術手段&#xff0c;對古村古鎮進行多方位、多角度的數字化記錄、展示與傳播&#xff0c;實現文化遺產的數字化保護、活化利用與共享。項目內容主要包括&#xff1a;1&#xff09;古村古鎮數據庫的建立&#xff1a;通過多種渠道收集古村古鎮的各類信息&am…

期貨量化交易客戶端開源教學第八節——TCP通信服務類

private FReciveStr: AnsiString; {接收到的數據} IsConErr: Boolean; {網絡連接是否失敗} FSocket_LB: Integer; {TCP連接類別,0為交易,1為行情,2為查詢} FRetryCount: Integer; {網絡連接重試次數} FLoginErrEvent: TLoginErrEvent; {…

如何從 PDF 中刪除背景

您是否曾經收到過充滿分散注意力背景的掃描 PDF 文檔&#xff1f;也許是帶有繁忙水印的舊收據或背景光線不均勻的掃描文檔。雖然這些背景可能看起來沒什么大不了的&#xff0c;但它們會使您的工作空間變得混亂&#xff0c;并使您難以專注于重要信息。輕松刪除這些不需要的元素并…

短視頻SEO矩陣系統:源碼開發與部署全攻略

在數字化時代&#xff0c;短視頻已成為人們獲取信息、娛樂休閑的重要方式。隨著短視頻平臺的興起&#xff0c;如何讓自己的內容在眾多視頻中脫穎而出&#xff0c;成為每個創作者和內容運營者關注的焦點。本文將為您深入解析短視頻SEO矩陣系統的源碼開發與部署&#xff0c;助您在…

MT6825磁編碼IC在智能雙旋機器人中的應用

MT6825磁編碼IC在智能雙旋機器人中的應用&#xff0c;無疑為這一領域的創新和發展注入了新的活力。作為一款高性能的磁性位置傳感器&#xff0c;MT6825以其獨特的優勢&#xff0c;在智能雙旋機器人的運動控制、定位精度以及系統穩定性等方面發揮了關鍵作用。 www.abitions.com …

django ninja get not allowed 能用 put delete

遇到一個奇怪的問題&#xff0c;django-ninja 編寫的 get post 方法不能使用 # 獲取Material router.get(/material, responseList[MaterialSchemaOut]) paginate(MyPagination) def list_material(request, filters: Filters Query(...)):qs retrieve(request, Material, f…

Midjourney v6.5 可能會在“7月底”發布,并改進了真實感和皮膚紋理

Midjourney v6.5即將發布&#xff0c;這一更新將大幅提升圖像的真實感和皮膚紋理&#xff0c;為用戶帶來更逼真的視覺體驗。首席執行官David Holz在電話會議中宣布&#xff0c;新版本將提高圖像清晰度&#xff0c;特別是在手部和皮膚細節上&#xff0c;同時改進Web應用程序和個…

ABAP調用BAPI時COMMIT WORK AND WAIT未按照預期同步提交問題分析

背景&#xff1a; 在做ABAP開發時&#xff0c;經常會有連續調用BAPI的需求&#xff0c;比如先創建銷售訂單&#xff0c;再依據銷售訂單創建交貨單&#xff0c;再對交貨單進行過賬等類似的一連串調用&#xff0c;這種類似的場景往往需要前一步操作的數據完全寫入數據庫才能進行…

編譯打包自己的云手機(redroid)鏡像

前言 香橙派上跑云手機可以看之前的文章&#xff1a; 香橙派5plus上跑云手機方案一 redroid(帶硬件加速)香橙派5plus上跑云手機方案二 waydroid 還有一個cuttlefish方案沒說&#xff0c;后面再研究&#xff0c;cuttlefish的優勢在于可以自定義內核且selinux是開啟的&#xf…

vue3下載base64文件

如果后端明確告訴你返回的是base64&#xff0c;那請求頭就不用帶responseType: “blob”,和普通的接口一樣發送就行 await materialsFile({ id: proxy.$route.query.id }).then((res) > {if (res) {// atob先解碼base64數據const raw window.atob(res.data);// 獲取解碼后…

vscode 遠程開發

目錄 vscode 遠程連接 選擇 Python 環境 vscode 遠程連接 按 CtrlShiftP 打開命令面板。輸入并選擇 Remote-SSH: Open SSH Configuration File...。選擇 ~/.ssh/config 文件&#xff08;如果有多個選項&#xff09;。在打開的文件中添加或修改你的 SSH 配置。 這個可以右鍵…

Jupyter Notebook基礎:用IPython實現動態編程

Jupyter Notebook基礎&#xff1a;用IPython實現動態編程 1. 引言 Jupyter Notebook是一個基于Web的交互式計算環境&#xff0c;允許用戶創建和共享包含實時代碼、方程式、可視化和文本敘述的文檔。它廣泛應用于數據清洗與轉換、數值模擬、統計建模、機器學習以及其他數據科學…

開放開源開先河(一)

2022年7月28日&#xff0c;以“軟件定義世界 開源共筑未來”為主題的全球數字經濟大會開放原子開源峰會在北京開幕&#xff0c;承辦主峰會和為捐贈人進行授牌儀式的開放原子開源基金會再次進入公眾視野。基金會秘書長孫文龍從匯聚全球產業鏈開源力量、核心鏈接能力、開發者分享…

Aop切面編程(2)--代理模式

1、代理模式的理解&#xff1a;不修改A對象的代碼的基礎上&#xff0c;對A代碼塊進行拓展。通過創建ProxyA代理對象&#xff0c;拓展A對象并調用A對象的核心功能&#xff1b; 即&#xff1a;不修改對象的源碼基礎上&#xff0c;創建代理對象&#xff0c;進行功能的附加和增強&…

端到端擁塞控制的本質

昨天整理了一篇 bbr 的微分方程組建模(參見 bbr 建模)&#xff0c;算是 bbr 算法終極意義上的一個總結&#xff0c;最后也順帶了對 aimd 的描述&#xff0c;算是我最近比較滿意的一篇分享了。那么接下來的問題&#xff0c;脫離出具體算法&#xff0c;上升到宏觀層面&#xff0c…

git reset hard和soft的使用和區別

在Git中&#xff0c;git reset命令用于撤銷提交、回溯版本和調整工作目錄或暫存區狀態&#xff0c;而不是gitrestore。git reset主要有三種模式&#xff1a;--soft、--mixed&#xff08;默認&#xff09;和--hard。以下是關于--hard和--soft兩種模式的使用方法和區別的詳細解釋…

uniapp微信小程序 TypeError: $refs[ref].push is not a function

我的寫法 this.$refs.addPopup.open();報錯 打印出來是這樣的 解決 參考未整理 原因 在當前頁面使用的v-for循環 并且循環體內也有組件使用了ref&#xff08;而我沒有把每個ref做區別命名&#xff09; 這樣就導致了我有很多同名的ref&#xff0c;然后就報錯了 解決辦法&a…