1.下載Centos鏡像
docker pull centos
2.進入容器
docker run -it -d centos /bin/bash
-t: 讓docker分配一個偽終端并綁定到容器的標準輸入上;
-i: 讓容器的標準輸入保持打開,這時bash命令才不會自動退出;
-d: 讓容器在后臺運行。
如果沒有-d,則會進入容器交互模式贺喝,輸入exit命令后送讲,會導致容器退出運行狀態(tài)况增。加上-d, exit命令退出容器后致扯,容器仍然能保持后臺運行狀態(tài)。
執(zhí)行docker exec進入centos容器
docker exec -it centos /bin/bash
3.安裝libreoffice育苟、中文字體庫等所需的軟件
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
......
因為只需要處理Excel违柏,所以就只安裝libreoffice-calc.x86_64
yum install libreoffice-calc.x86_64
yum groupinstall "Fonts"
yum groupinstall "Input Methods"
4.生成安裝了libreoffice、中文字體等軟件的docker 鏡像
執(zhí)行exit命令退出容器后在宿主機執(zhí)行
docker commit CONTAINER_ID alexxu/librexlsx
通過docker ps|grep centos查看centos容器的container id.
5.停掉剛才運行的centos容器
docker stop CONTAINER_ID或是container_name(這里是centos)
6.啟動上面新生成的docker 鏡像alexxu/librexlsx
docker run –name libxlsx -it -d -v /$HOME/data:/root/pdf alexxu/librexlsx /bin/bash
-v創(chuàng)建共享目錄,將宿主機目錄/$HOME/data 映射到容器的/root/pdf目錄 ,把要轉換的Excel文件indicator.xlsx放到/$HOME/data目錄香椎。
進入容器
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而不是像我單獨安裝libreoffice-calc模塊漱竖,導出時,導出命令最好加上output filter:calc_pdf_Export畜伐;如果是轉word文檔馍惹,則output filter類型為:writer_pdf_Export;這樣明確告訴libreoffice是要哪個模塊去轉換。
soffice --headless --invisible --convert-to pdf:calc_pdf_Export --outdir /root/pdf /root/pdf/indicator.xlsx
因為我不確定libreoffice是不是能夠自動識別你要轉換的是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)境通過libreoffice將Excel轉換為pdf的詳細過程万矾。
如果想轉換為html, 則將參數(shù) --convert-to pdf改為 --convert-to html就可以。