实现PPT在线预览,PPT转图片方案
Posted goingforward
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现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實現文檔上傳、在線預覽功能
以上是关于实现PPT在线预览,PPT转图片方案的主要内容,如果未能解决你的问题,请参考以下文章
Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attil