docker安裝libreoffice并實(shí)現(xiàn)把Excel轉(zhuǎn)為pdf

1.下載Centos鏡像

docker pull centos

2.進(jìn)入容器

docker run -it -d  centos /bin/bash

-t: 讓docker分配一個(gè)偽終端并綁定到容器的標(biāo)準(zhǔn)輸入上;
-i: 讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi),這時(shí)bash命令才不會(huì)自動(dòng)退出;
-d: 讓容器在后臺(tái)運(yùn)行。
如果沒(méi)有-d,則會(huì)進(jìn)入容器交互模式,輸入exit命令后,會(huì)導(dǎo)致容器退出運(yùn)行狀態(tài)。加上-d, exit命令退出容器后,容器仍然能保持后臺(tái)運(yùn)行狀態(tài)。

執(zhí)行docker exec進(jìn)入centos容器

docker exec -it centos /bin/bash

3.安裝libreoffice、中文字體庫(kù)等所需的軟件

yum search libreoffice

可以看到除了libreoffice,還有很多office單一的子模塊
yum目前的版本只到5.3.6.1,如果要安裝最新的版本,需要從官網(wǎng)下載最新的安裝包安裝
libreoffice.x86_64 : Free Software Productivity Suite
libreoffice-calc.x86_64 : LibreOffice Spreadsheet Application
libreoffice-writer.x86_64 : LibreOffice Word Processor Application
libreoffice-draw.x86_64 : LibreOffice Drawing Application
......

因?yàn)橹恍枰幚鞥xcel,所以就只安裝libreoffice-calc.x86_64

yum install libreoffice-calc.x86_64
yum groupinstall "Fonts"
yum groupinstall "Input Methods"

4.生成安裝了libreoffice、中文字體等軟件的docker 鏡像
執(zhí)行exit命令退出容器后在宿主機(jī)執(zhí)行

docker commit CONTAINER_ID alexxu/librexlsx

通過(guò)docker ps|grep centos查看centos容器的container id.
5.停掉剛才運(yùn)行的centos容器

docker stop CONTAINER_ID或是container_name(這里是centos)

6.啟動(dòng)上面新生成的docker 鏡像alexxu/librexlsx

docker run –name libxlsx -it -d  -v /$HOME/data:/root/pdf  alexxu/librexlsx /bin/bash

-v創(chuàng)建共享目錄,將宿主機(jī)目錄/$HOME/data 映射到容器的/root/pdf目錄 ,把要轉(zhuǎn)換的Excel文件indicator.xlsx放到/$HOME/data目錄。

進(jìn)入容器

docker run -it -d  centos /bin/bash

執(zhí)行命令:

soffice --headless --invisible --convert-to pdf --outdir /root/pdf /root/pdf/indicator.xlsx

則在/$HOME/data目錄可以看到生成的indicator.pdf

注意:如果你上面yum安裝的是libreoffice而不是像我單獨(dú)安裝libreoffice-calc模塊,導(dǎo)出時(shí),導(dǎo)出命令最好加上output filter:calc_pdf_Export;如果是轉(zhuǎn)word文檔,則output filter類(lèi)型為:writer_pdf_Export;這樣明確告訴libreoffice是要哪個(gè)模塊去轉(zhuǎn)換。
soffice --headless --invisible --convert-to pdf:calc_pdf_Export --outdir /root/pdf /root/pdf/indicator.xlsx
因?yàn)槲也淮_定libreoffice是不是能夠自動(dòng)識(shí)別你要轉(zhuǎn)換的是Excel還是Word.
libreoffice命令行參數(shù)作用可以查看:https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/zh-CN

如果是在容器外執(zhí)行。

docker exec libxlsx /bin/bash -c 'soffice --headless --invisible --convert-to pdf --outdir /root/pdf /root/pdf/indicator.xlsx'

以上就是怎樣在linux環(huán)境通過(guò)libreoffice將Excel轉(zhuǎn)換為pdf的詳細(xì)過(guò)程。
如果想轉(zhuǎn)換為html, 則將參數(shù) --convert-to pdf改為 --convert-to html就可以。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容