`
wiselyman
  • 浏览: 2081360 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:81126
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130151
社区版块
存档分类
最新评论

网页在线浏览ppt的实现

    博客分类:
  • work
 
阅读更多

在线浏览ppt(当然doc,xls都是可以得)的思路是

  • 先将ppt转为pdf
  • 再用js调用pdf在线查看
  • 主要借助的工具有openoffice,jodconveter,viewerjs

1 服务端

1.1 安装openoffice

  • 下载openoffice

  • 版本为3.4.1,高版本可能不支持

  • 默认安装
  • 启动openoffice服务
cd C:\Program Files (x86)\OpenOffice.org 3\program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;

1.2 编译jodconverter

  • 下载hyperic-sigar

  • 解压hyperic-sigar-1.6.4到任意E盘(随意)

  • 下载jodconverter

  • 进入jodconverter-core目录

  • 运行maven命令

mvn -Djava.library.path=E:/hyperic-sigar-1.6.4/sigar-bin/lib -DskipTests install
  • 这是target目录和.m2目录下便有了jodconverter-core-3.0-SNAPSHOT.jar,

1.3 转换代码

  • 开发的项目加入jodconverter-core依赖,pom.xml
<dependency>
    <groupId>org.artofsolving.jodconverter</groupId>
    <artifactId>jodconverter-core</artifactId>
    <version>3.0-SNAPSHOT</version>
</dependency>
  • 代码,默认在Spring的环境下

    • 转换服务
    @Service
    public class PptConverter {
    public void ppt2PDF(File inputFile, File outputFile) {
    
        // 如果目标路径不存在, 则新建该路径
        if (!outputFile.getParentFile().exists()) {
            outputFile.getParentFile().mkdirs();
        }
    
        // convert
        ExternalOfficeManagerConfiguration configuration = 
                       new ExternalOfficeManagerConfiguration();
        configuration.setConnectionProtocol(OfficeConnectionProtocol.SOCKET);
        configuration.setPortNumber(8100);
        OfficeManager officeManager= configuration
                            .buildOfficeManager();
        OfficeDocumentConverter converter = 
                     new OfficeDocumentConverter(officeManager);
        converter.convert(inputFile, outputFile);
    
    }
    }
    
    • 调用处
    @Autowired
      PptConverter pptConverter;
      @RequestMapping("xx")
      public String convertAndView() throws Exception{
          File inputFile =  new File("输入路径---请自行修改");
          File outFile = new File("输出路径---请自行修改");
          pptConverter.ppt2PDF(inputFile,outFile);
          return "viewer";
      }

2 客户端

  • 下载viewerjs
  • 解压,将ViewerJS下的所有内容放置项目webapp下(可直接在项目路径后直接访问的路径都可以)
  • 在同级目录下放置一个pdf(test2.pdf)
  • 如项目名是xx
  • 在线预览该pdf的路径为http://localhost:8080/xx/#../xx/test2.pdf
  • 效果如下 
  • 在实际项目里可通过iframe嵌入这个地址到别的页面
1
0
分享到:
评论
7 楼 18335864773 2018-03-06  
pageoffice 组件可以实现在线打开、编辑、打印预览、打印Word、Excel、PowerPoint等Office文档。
6 楼 hwxiait 2015-11-25  
zhunengfei 写道
客户端还有安装openoffice??  这样很不方便啊

https://www.showapi.com/api/lookPoint/770
5 楼 zhunengfei 2015-06-06  
哎 你是不了解客户哦,还有更新人员不是我们开发,我们有专门的更新人员,批量更新他们老不情愿,我在网上也看到这个   flex  可以实现
4 楼 wiselyman 2015-06-05  
zhunengfei 写道
了解了 刚才我去网上找 openoffic也有linux版本, 服务器要安装 感觉确实不太实用啊,太麻烦了,客户有几百家每家服务器都要安装的,哎,除了你上面的方案没有更好的办法实现呢?


那这个几百家服务器还要安装操作系统,java,程序啥的呢

openoffice应该有rpm和deb的包,一键安装,不知道麻烦再何处
3 楼 zhunengfei 2015-06-05  
了解了 刚才我去网上找 openoffic也有linux版本, 服务器要安装 感觉确实不太实用啊,太麻烦了,客户有几百家每家服务器都要安装的,哎,除了你上面的方案没有更好的办法实现呢?
2 楼 wiselyman 2015-06-05  
zhunengfei 写道
客户端还有安装openoffice??  这样很不方便啊

指的是服务器端装OpenOffice,客户端不需要
1 楼 zhunengfei 2015-06-04  
客户端还有安装openoffice??  这样很不方便啊

相关推荐

Global site tag (gtag.js) - Google Analytics