实现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.)
或者:
下载 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..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.: cannot open shared object file: No such file or directory
原因:缺少libcairo.so.2依赖库
解决:yum install ibus(启动失败的时候加)
之后再通过代码启动服务时,如果这个服务没有关闭会报错,所以启动成功后需要手动关闭(kill - 进程号)
命令行使用,pptx转pdf:
cd /opt/libreoffice6./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.
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 -ry -svg -q -f -l /usr/tmp/test.pdf /usr/tmp/test1.svg
下面的可以忽略:
安装poppler the hard way
解压cmake-3.12..tar.gz,fontconfig-2.13..tar.bz2,
poppler-0.67..tar.xz,poppler-data-0.4..tar.gz
这四个文件后 先安装 cmake
yum install curl(如果没装)
cd /usr/software/cmake-3.12./
./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转图片方案的更多相关文章
- word,excel,ppt在线预览功能
我们在开发web项目时,尤其类似oa功能时总会遇到上传附件并在线预览的功能,发现一款api比较好使,下面简单介绍一下. 微软官网本身提供了在线预览的API 首先将要预览的文档转成.docx,.xlsx ...
- JavaScript实现Word、Excel、PPT在线预览
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_27626333/article/d ...
- pdf word excel ppt 在线预览方案收集
https://www.idocv.com/docs.html http://www.cnblogs.com/wolf-sun/p/3569960.html http://coolwanglu.git ...
- 前端实现在线预览pdf、docx、xls、ppt等文件
思路:前台将各种格式的附件上传到服务器----后台通过方法将这些格式的文件转化成图片,前台通过放映ppt的方式将其展示在页面上. 关键点:reveal.js 参考文章:https://www.awes ...
- web office apps 在线预览实践
摘要 在一些项目中需要在线预览office文档,包括word,excel,ppt等.达到预览文档的目的有很多方法,可以看我之前总结,在线预览的n种方案: [Asp.net]常见word,excel,p ...
- 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程
大家好,又见面了. 在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览.在线编辑.多人协同编辑等种种能力的诉求. 对于人力不是特别充裕.或者项目投入预期规划不是特别大的公司或 ...
- 文档在线预览开源实现方案一:OpenOffice + SwfTools + FlexPaper
在文档在线预览方面,项目组之前使用的是Microsoft office web apps, 由于该方案需要按照微软License付费,项目经理要我预研一个文档在线预览的开源实现方案.仔细钻入该需求发现 ...
- [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!
引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...
- [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)
引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...
随机推荐
- 关闭pm2
先查找ID pm2 status 然后 pm2 stop id pm2 delete id
- 远程使用tomcat8的首页的管理工具
1.在%Tomcat_Home%/conf/Catalina/localhost中新建manager.xml,内容如下 <Context privileged="true" ...
- Apereo CAS - 1
1. download cas 4.2.2 from https://github.com/apereo/cas/releases 2. eclipse import cas 4.2.2 eclip ...
- 识别User Agent屏蔽一些Web爬虫防采集
识别User Agent屏蔽一些Web爬虫防采集 from:https://jamesqi.com/%E5%8D%9A%E5%AE%A2/%E8%AF%86%E5%88%ABUser_Agent%E5 ...
- Java9新特性
转载:http://blog.csdn.net/qq_32524177/article/details/77014757 写在前面的话:Java9来了,搜索了很多关于Java9的新特性,但文献不多,特 ...
- HDU 4686 Arc of Dream 矩阵快速幂,线性同余 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=4686 当看到n为小于64位整数的数字时,就应该有个感觉,acm范畴内这应该是道矩阵快速幂 Ai,Bi的递推式题目 ...
- Java基础——概述
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- linux 命令 --if
if else-if else 语法格式: if condition1 then command1 elif condition2 then command2 else commandN fi 例如: ...
- JDK配置 java跨平台性
jdk 虚拟机jre 依赖包javac 编译java 运行JAVA_HOME 一个存储jdk路径的自定义的变量,方便其他地方配置以后更改方便其他地方调用JAVA_HOME使用%JAVA_HOME%配置 ...
- SharePoint Development - Custom Content Type using Visual Studio 2010 based SharePoint 2010
博客地址 http://blog.csdn.net/foxdave 本文所述均来自之前实际的项目模块 首先再论述一下SharePoint ContentType内容类型 SharePoint的列表和文 ...