word,rtf的轉換有以下方案,想要免費最靠譜的是LibreOffice方案,
LibreOffice?是一款?免費、開源、跨平臺?的辦公軟件套件,旨在為用戶提供高效、全面的辦公工具,適用于個人、企業和教育機構。它支持多種操作系統(Windows、macOS、Linux 等),并能兼容微軟 Office(如 DOCX、XLSX、PPTX 等)及其他常見文件格式,是替代商業辦公軟件的理想選擇。
LibreOffice不僅能實現rtf轉word,還能實現rtf轉pdf,轉html,word轉pdf,轉html,相當強大。
LibreOfficewindows安裝很簡單,linux安裝有點復雜,以下是實現方法
方案 | 優點 | 缺點 | 適用場景 |
---|---|---|---|
Apache POI + RTF 解析 | 免費、跨平臺 | 開發復雜,格式支持有限 | 簡單 RTF 轉換需求 |
Jacob(COM 調用) | 高質量轉換 | 僅 Windows,依賴 Office | 企業內網環境(Windows + Office) |
Aspose.Words | 高質量、跨平臺、易用 | 商業付費 | 需高質量轉換的商業項目 |
Free Spire.Doc | 免費(有限制) | 有水印限制 | 非商業項目或測試用途 |
HTML 中間轉換 | 靈活 | 格式丟失風險 | 對格式要求不高的場景 |
LibreOffice 無頭模式 | 免費、跨平臺、支持復雜格式 | 依賴安裝、資源占用高 | 需免費處理復雜格式的場景 |
windows環境安裝?
進入下載頁:下載 LibreOffice | LibreOffice 簡體中文官方網站 - 自由免費的辦公套件
選擇下載msi文件,下載好后直接安裝就行了
java實現轉換?
安裝依賴包
implementation 'org.jodconverter:jodconverter-local:4.4.0'
代碼實現 很簡單,構建LibreOffice實例和jodConverter實例,然后就能轉換了,jodConverter能夠通過文件名后綴識別你想要轉換的格式
// 構建并啟動 LibreOffice 實例
OfficeManager officeManager = LocalOfficeManager.builder().install().build();
officeManager.start();
// 創建文檔轉換器
DocumentConverter converter = LocalConverter.builder().officeManager(officeManager).build();
//進行轉換
converter.convert(new File("D:\\T_14_3_1_6.rtf")).to(new File("D:\\11.docx")).execute();
officeManager.stop();
Linux安裝LibreOffice
我的linux是centos7,核心比較老,只能選擇一些老版本,如果你服務器版本新可以選擇新版本
老版本下載地址:Index of /libreoffice/old/7.5.9.2/rpm/x86_64
下載安裝包以及語言包
把下載好的包上傳到/opt目錄下,然后進入opt目錄進行解壓安裝
安裝LibreOffice
# 進入opt目錄
cd /opt
# 解壓
tar -zxvf LibreOffice_7.5.9.2_Linux_x86-64_rpm.tar.gz
# 進入解壓后的RPMS目錄
cd LibreOffice_7.5.9.2_Linux_x86-64_rpm/RPMS/
# 安裝LibreOffice,如果你是新版本系統可以用dnf命令
yum localinstall *.rpm
?安裝語言包,跟安裝LibreOffice基本一致
cd /opt
tar -zxvf LibreOffice_7.5.9_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
cd LibreOffice_7.5.9.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/
yum localinstall *.rpm
驗證是否安裝成功
libreoffice7.5 --version
?看到這個說明安裝成功了
?
解決中文亂碼
一般在windows下安裝我們的LibreOffice成功后,轉換中文都是正常的,但在linux上基本上都會出現亂碼的問題。 因為linux中缺少一些中文字體導致的。這個時候我們需要把windos中的字體文件夾上傳到linux上,同步一下字體信息。
1.打開windows電腦的C:\Windows,把Fonts壓縮成zip包
2.把壓縮包上傳到 /usr/share/fonts目錄下
# 安裝解壓工具
yum -y install unzip
cd /usr/share/fonts
# 解壓
unzip Fonts.zip
yum -y install cups-libs fontconfig
# 給Fonts目錄權限
chmod -R 755 /usr/share/fonts/Fonts
yum -y install ttmkfdir
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
# 刷新字體
fc-cache
# 查看安裝的字體
fc-list
報錯處理
如果運行java時報java.lang.NullPointerException: officeHome must not be null,說明officeHome沒有正確識別到,需要手動添加,如果你安裝目錄是/opt,則officeHome在/opt/libreoffice7.5
修改代碼如下
參考博客:Linux Centos系統安裝LibreOffice全過程詳解_libreoffice安裝教程linux-CSDN博客?