实现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文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...
随机推荐
- 雷林鹏分享:Ruby Dir 类和方法
Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...
- 优化--前端(全占课,未完成作业:);CDN; Http/2的设置(未完成)
前端效能: 关键渲染路径:Google 文档 JavaScript 加载最佳化 让html和javascript同时渲染: 设置<script>的async或者defer属性(boolea ...
- Qt Creatror使用designer修改了界面但是编译无反应的解决方法
这个问题主要是UI没有更新导致的,根治的方法为: 项目中的.pro内增加 UI_DIR=./UI,同时删除掉源代码目录中ui_*.h,clear all,->qmake->rebuilt ...
- python 发送QQ邮件的小例子
首先QQ邮件用第三方客户端发送要申请验证码.而不是QQ的密码. 授权码就是你接下来登录要使用的密码 那么剩下的工作就很简单了.附简单代码如下: #coding:utf-8 import smtplib ...
- Jenkins插件开发(一)--环境搭建
最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上.jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介 ...
- 作业要求20181023-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 01
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 版本控制:https://git.coding.net/liuyy08 ...
- Cause: org.postgresql.util.PSQLException: ERROR: cached plan must not change result type的前因后果
首先说明一下遇到的问题: PG数据库,对其中的某张表增加一列后,应用报错,信息如下: 应用使用相关框架如下:SpringBoot.MyBatis. ### Cause: org.postgresql. ...
- cousera 深度学习 吴恩达 第一课 第二周 学习率对优化结果的影响
本文代码实验地址: https://github.com/guojun007/logistic_regression_learning_rate cousera 上的作业是 编写一个 logistic ...
- ubuntu自带截图工具gnome-screenshot
记得以前用windows,各种截图工具,现在用了ubuntu,一下子不知怎么截图,从网上搜索一下,ubuntu真强大! 下面是我用ubuntu自带的截图工具截的图.
- POJ 2236:Wireless Network(并查集)
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 36363 Accepted: 150 ...