摘要:用將文檔轉換本例使用。在和環境下測試通過。轉換命令源文件放在或者封裝了一組轉換命令,通過調用相關服務。安裝檢查已有字體庫復制字體新建文件夾把系統的字體復制進去。
用LibreOffice將Office文檔轉換PDF
本例使用 LibreOffice-6.0.4、jodconverter-4.2.0、spring-boot-1.5.9.RELEASE。
在CentOS7 + openJDK8 和 Windows7 + jdk1.8 環境下測試通過。
# 源文件放在 e: mp123.docx 或者 /tmp/123.docx # windows soffice.exe --headless --invisible --convert-to pdf e: mp123.docx --outdir e: mp # linux /usr/bin/libreoffice6.0 --headless --invisible --convert-to pdf /tmp/123.docx --outdir /tmp
jodconverter封裝了一組轉換命令,通過java調用LibreOffice相關服務。
pom依賴org.jodconverter jodconverter-core 4.2.0 org.jodconverter jodconverter-local 4.2.0 org.jodconverter jodconverter-spring-boot-starter 4.2.0 org.libreoffice ridl 5.4.2
注意: 在這里說明特別一下,jodconverter自4.2開始,對LibreOffice相關功能從jodconverter-core中分離出來,封裝到為jodconverter-local,另外新增了jodconverter-online,支持LibreOffice online server的遠程調用。
配置 application.propertiesjodconverter.local.enabled=true # 設置LibreOffice主目錄 jodconverter.local.office-home=${pom.office.home} # 開啟多個LibreOffice進程,每個端口對應一個進程 jodconverter.local.portNumbers=8100,8101,8102 # LibreOffice進程重啟前的最大進程數 jodconverter.local.maxTasksPerProcess=100
使用Maven的多環境配置
調用方法win true C:/Program Files/LibreOffice linux /opt/libreoffice6.0
import org.jodconverter.DocumentConverter; @Resource private DocumentConverter documentConverter; // 具體轉換方法,參數是java.io.File documentConverter.convert(sourceFile).to(targetFile).execute();
convert方法 接受參數 java.io.File 或 java.io.InputStream
to方法 接受參數 java.io.File 或 java.io.OutputStream
在線預覽使用開源項目 https://github.com/mozilla/pdf.js
下載最新的release包(pdfjs-x.y.z-dist.zip)
pdfjswebviewer.html傳入參數file(示例:http://localhost:8080/pdfjs/web/viewer.html?file=xxxxxxx.pdf)
CentOS7安裝LibreOffice官網
https://zh-cn.libreoffice.org/
科大鏡像
http://mirrors.ustc.edu.cn/td...
中文語言包
http://mirrors.ustc.edu.cn/td...
wget -P /tmp/office http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.0.4/rpm/x86_64/LibreOffice_6.0.4_Linux_x86-64_rpm.tar.gz wget -P /tmp/office http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.0.4/rpm/x86_64/LibreOffice_6.0.4_Linux_x86-64_rpm_langpack_zh-CN.tar.gz解壓縮
tar zxvf /tmp/office/LibreOffice_6.0.4_Linux_x86-64_rpm.tar.gz -C /tmp/office tar zxvf /tmp/office/LibreOffice_6.0.4_Linux_x86-64_rpm_langpack_zh-CN.tar.gz -C /tmp/office檢查安裝包
ll /tmp/office/LibreOffice_6.0.4.2_Linux_x86-64_rpm/RPMS/*.rpm ll /tmp/office/LibreOffice_6.0.4.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm用yum安裝,不要執行install
yum install /tmp/office/LibreOffice_6.0.4.2_Linux_x86-64_rpm/RPMS/*.rpm yum install /tmp/office/LibreOffice_6.0.4.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm安裝libcairo.so.2依賴庫
yum install ibus查找服務目錄
安裝路徑:/opt/libreoffice6.0
快捷方式:/usr/bin/libreoffice6.0
/usr/bin/libreoffice6.0 --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizardCentOS7安裝字體庫
在CentOS7服務器上,利用LibreOffice將word等格式轉換為PDF,發現不支持漢字。需要安裝字體庫。
安裝fontconfigyum -y install fontconfig
安裝完成后,/usr/share目錄就可以看到fonts和fontconfig兩個目錄。
安裝ttmkfdiryum -y install ttmkfdir檢查已有字體庫
fc-list復制字體
#新建文件夾 mkdir /usr/share/fonts/chinese
把Windows系統的字體C:WindowsFonts復制進去。
simsun.ttc 宋體
simhei.ttf 黑體
msyh.ttf 微軟雅黑
msyhbd.ttf 微軟雅黑
# 修改字體權限 chmod -R 644 /usr/share/fonts/chinese匯總生成fonts.scale文件
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir修改字體配置文件
vim /etc/fonts/fonts.conf修改內容
更新字體緩存.... .... /usr/share/fonts/chinese ....
fc-cache -fv
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69606.html
摘要:基于實現的文檔轉換項目,無框架依賴,即插即用項目源代碼技術棧功能使用安裝配置獲取依賴編輯配置文件執行轉換按照文件路徑轉換按照輸入輸出流轉換按照文件轉換圖片處理按照文件路徑處理按照文件處理添加水印按照文件路徑添加水印按照流添加水印按照添加水 基于libreoffice實現的文檔轉換項目,無框架依賴,即插即用 項目源代碼:github/workable-converter 1. 技術棧 ...
摘要:由于公司要求限制,該項目在下開發,非,因此需要傳統方式引入相關依賴包。此外,的啟動與結束需要自己控制。項目啟動時調用結束時關閉轉換服務啟動成功找不到源文件則返回假如目標路徑不存在則新建該路徑轉換服務完成。 簡介 引入jodconverter相關jar,配合libreOffice、openOffice兩款軟件,只需進行簡單編碼可以實現各種文檔轉換。 應用 目前已在兩個項目中應用: F項目...
摘要:而利用接口進行讀取與生成的方式性能較好,適用于對于格式要求不是很高的情況。 本文從屬于筆者的Java入門與最佳實踐系列文章。 DOCX2PDF 將DOCX文檔轉化為PDF是項目中常見的需求之一,目前主流的方法可以分為兩大類,一類是利用各種Office應用進行轉換,譬如Microsoft Office、WPS以及LiberOffice,另一種是利用各種語言提供的對于Office文檔讀取的...
摘要:項目需求在前端頁面中實現預覽表格的功能,上網了解之后大致總結為一下幾種方法。第四種方法把表格打開后,另存為格式的文件。在網頁上預覽效果和表格一致。 項目需求在前端頁面中實現預覽excel表格的功能,上網了解之后大致總結為一下幾種方法。 1.office文檔轉換為pdf,再轉swf,然后通過網頁加載flash進行預覽 2.通過 xlsx.js,jszip.js插件 3.django xl...
閱讀 1378·2021-11-24 09:38
閱讀 2086·2021-09-22 15:17
閱讀 2340·2021-09-04 16:41
閱讀 3450·2019-08-30 15:56
閱讀 3510·2019-08-29 17:19
閱讀 1939·2019-08-28 18:09
閱讀 1249·2019-08-26 13:35
閱讀 1711·2019-08-23 17:52