實現PPT在線預覽,PPT轉圖片方案


一、PPT轉圖片可行方案探索歷程

PPT轉圖片方案

方案具體步驟及分析

已放棄方案

poi(失真度太高);Aspose直接轉圖片(收費,效果較好,備選);微軟Office Online(需要基於Windows部署);office web 365(收費,效果可以,公有雲服務);永中DCS(收費,效果不是很好);docsplit(命令行或者Ruby接口調用,底層使用LibreOffice將文檔轉換成PDF,GraphicsMagick 生成圖片。)

使用過的方案及情況

PPT轉PDF文件使用LibreOffice(需要安裝,支持linux平台,轉換效果良好,少數會出現顏色和格式不一致,需要進一步尋找更佳方案),PDF文件轉圖片使用GraphicsMagick(需要安裝,支持Linux平台,轉換效果良好,有少數文字清晰度會降低,考慮到使用JAVA做開發,需要結合使用im4java)

可嘗試方案

Linux下unoconv(命令行工具,底層也是用的LibreOffice)將ppt轉成pdf,用imagemagick將pdf轉成jpg(文檔比較少,但是可以嘗試下)

最終采用方案

使用LibreOffice將PPT轉成PDF(代碼參考開源項目kkFileView),再使用pdftocairo將PDF文件轉成SVG文件(獲取每頁PDF文件時要用到了PDFbox)

二、相關軟件安裝步驟

說明:安裝均在CentOS下進行,除了poppler不支持Window平台外,其他的工具都可以找到Windows平台上的安裝包。

一、安裝libreoffice:

yum install libreoffice(版本為5.3.6.1)

或者:

下載 https://www.libreoffice.org/donate/dl/rpm-x86_64/6.0.5/zh-CN/LibreOffice_6.0.5_Linux_x86-64_rpm.tar.gz
tar -xzvf LibreOffice_6.0.5_Linux_x86-64_rpm.tar.gz
$ cd LibreOffice_6.0.5.2_Linux_x86-64_rpm/RPMS/
$ sudo yum install *.rpm

命令行啟動服務錯誤解決:

./soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
error while loading shared libraries: libcairo.so.2: cannot open shared object file: No such file or directory
原因:缺少libcairo.so.2依賴庫
解決:yum install ibus(啟動失敗的時候加) 
之后再通過代碼啟動服務時,如果這個服務沒有關閉會報錯,所以啟動成功后需要手動關閉(kill -9 進程號)

命令行使用,pptx轉pdf:

cd /opt/libreoffice6.0/program
soffice --convert-to pdf:writer_pdf_Export test.pptx

 

卸載libreoffice

yum erase libreoffice\*
或者yum remove libreoffice-*

LibreOffice亂碼問題解決:

cd /usr/share/fonts/ 加上Windows字體包
執行以下命令讓字體生效
cd /usr/share/fonts
mkfontscale
mkfontdir
fc-cache -fv

二、安裝GraphicsMagick:

yum -y install wget
wget ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/GraphicsMagick-LATEST.tar.gz
tar -xzvf GraphicsMagick-LATEST.tar.gz
cd GraphicsMagick-1.3.30
yum install gcc libpng libjpeg libpng-devel libjpeg-devel ghostscript libtiff libtiff-devel freetype freetype-devel jasper jasper-devel bzip2-devel freetype-devel
./configure
make install
gm version

命令行使用,pdf轉圖片:

gm convert +adjoin test.pdf ./test/magic%03d.png

三、安裝poppler,包含了pdftocairo:

 centos上直接安裝:

yum install poppler-utils.x86_64

命令行使用,將pdf第一頁轉為svg文件:

pdftocairo -rx 300 -ry 300 -svg -q -f 1 -l 1 /usr/tmp/test.pdf /usr/tmp/test1.svg

下面的可以忽略:

安裝poppler the hard way
解壓cmake-3.12.0.tar.gz,fontconfig-2.13.0.tar.bz2,
poppler-0.67.0.tar.xz,poppler-data-0.4.9.tar.gz
 這四個文件后
 
 先安裝 cmake 
 yum install curl(如果沒裝)
 cd /usr/software/cmake-3.12.0/
 ./bootstrap 
 gmake 
 make install 
 
 然后安裝fontconfig
 yum -y install fontconfig
 yum install fontconfig-devel
 
 安裝openjpeg2
 yum install openjpeg2
 yum install openjpeg2-devel
 
安裝poppler:
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=release
make
make install

使用libreoffice轉ppt為pdf代碼參考:

開源工具

代碼參考:Java使用libreoffice實現office文件轉換成pdf格式,支持windows和linux

可參考:用openoffice+jodconverter+webuploader+pdf.js實現文檔上傳、在線預覽功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM