zoukankan      html  css  js  c++  java
  • 实现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實現文檔上傳、在線預覽功能

  • 相关阅读:
    Windows平板优化设置
    MAC OS UI设计
    使用bat/vbs/ahk对Windows下进行自动化操作
    C#在高性能计算领域为什么性能却如此不尽人意
    自定义多重搜索
    CF797E Array Queries
    标记永久化学习笔记
    P7200 [COCI2019-2020#1] Lutrija
    P1075 [NOIP2012 普及组] 质因数分解
    基础数论重学笔记
  • 原文地址:https://www.cnblogs.com/goingforward/p/9396304.html
Copyright © 2011-2022 走看看