在线浏览文档的方案

百度了一下,java 方面 在线浏览文档基本都是OpenOffice+SWFTool+Flexpaper的居多。

我这两天项目用上。没多考虑就直接拿来用了。不想一堆的问题。。。

首先jodconverter 2.2.1 不支持2007 office 文档的转换。需要FQ去下载谷歌的3.0-Beta-4版本 :(

其次,转换表格不理想。Excel,和带表格的word文档,就别指望能有高颜值的pdf文档输出。

最后,速度慢啊,先要转pdf,pdf又要转swf。 真个烦。

最悲剧的是,officeManager 进程启动OpenOffice不稳定,如果按照网上的写法,先start,再close,就很耗时间,也让JVM不停的创建内存,释放内存。

如果只开一次,不关闭,那么程序崩溃或者tomcat 更新war包重启,就会导致一直连接不上。主要原因就是没有关闭OpenOffice的进程.

最最悲剧的是,pdf2swf 必须通过Runtime.getRuntime() 调用。这里埋下了很大的隐患。如果这个进程不结束,就会内存泄露,或者阻塞当前进程。其他请求将不能处理。

问题归问题,但是这个功能还是要实现的。后面直接把PDF2swf 去掉。直接用pdf.js 呈现pdf 文件。 目前来看。不需要转swf 了,但是OpenOffice的问题还是有。

于是自己动手写了一个杀死OpenOffice的方法。

private static void killOpenOfficeProcess() {
        Runtime rt = Runtime.getRuntime();
        String command = "taskkill /F /IM soffice.bin";
        try {
            rt.exec(command);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

这个方法每次这样调用

private static boolean startService() {
        // String path = System.getProperty("java.library.path");
        try {
            if (officeManager == null) {
                DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
                configuration.setOfficeHome(OPEN_OFFICE_HOME);// 设置安装目录
                configuration.setPortNumbers(OPEN_OFFICE_PORT); // 设置端口
                configuration.setTaskExecutionTimeout(1000 * 60 * 5L);
                configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);

                officeManager = configuration.buildOfficeManager();
            }
            killOpenOfficeProcess();
            officeManager.start(); // 启动服务
            startFlag = true;
            return true;
        } catch (Exception ce) {
            System.out.println(ce);
            return false;
        }
    }

对了,调试过程中发现一个奇葩的事情,officeManager.start()的时候,居然会调用sigar-amd64-winnt.dll。 如果这个文件不在java.library.path里,就会报错。

pdf.js还是挺不错的。

时间: 2025-01-24 09:22:03

在线浏览文档的方案的相关文章

Jeecg社区wiki在开放,终于可以在线看文档啦!!!

Jeecg社区wiki在开放,终于可以在线看文档啦!!! 2014-12-18 scott JEECG jeecg开源社区wiki正式启动了,方便大家看文档 访问地址是: http://osbaba.com:8002/display/12/Home 大家可以点击下面的阅读原文进入该链接哟 产品介绍 技术文档 用户指南 jeecg工作流快速开发平台 easypoi文档 jeecg数据权限操作手册 jeewx(捷微)微信管家系统 jeecg3.4-maven入门-eclipse jeewx-cms配

使用swagger实现web api在线接口文档

一.前言 通常我们的项目会包含许多对外的接口,这些接口都需要文档化,标准的接口描述文档需要描述接口的地址.参数.返回值.备注等等:像我们以前的做法是写在word/excel,通常是按模块划分,例如一个模块包含n个接口,就形成一个文档,然后再用版本控制管理.这样做的缺点是: 1.不够直观,每次打开文档查看接口很麻烦 2.文档的维护难度大 3.调用方和测试人员使用麻烦,需要先去找接口,在用相应的工具测试(例如使用浏览器还可能要安装插件) 我们希望是可以直接在线浏览,然后直接用浏览器测试.而接口的详细

NET中weboffice组件在线编辑文档并保存到服务器上

页面中组件的引用以及控件触发事件: <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="9" background="images/tab_12.gif"> <asp:Button ID="btnuploadsave"

网页在线播发视频 在线查看文档

首先 当博主接到这个任务时就有点兴奋,因为觉得又有新鲜东西搞了,所以马上上百度,google查了一些资料 其中在线播发视频需要: jwplayer(视频播发器插件,也有其他的,大家可以上网查),需要在页面设置参数 swftools 转swf格式工具,其中这个要设置参数来转视频为swf 其中在线查看文档需要: openoffice  转doc excel ppt等文档为pdf Flexpaper 将swf文档文件展示在页面 pdfview 将pdf转话为swf 以上是工具 由于代码不见了 转化的代

在线HTML文档编辑器使用入门之图片上传与图片管理的实现

1 在线HTML文档编辑器使用入门之图片上传与图片管理的实现: 2 官方网址: http://kindeditor.net/demo.php 3 开发步骤: 4 1.开发中只需要导入选中的文件(通常在 webapp 下,建立 editor 文件夹 ) 5 导入:lang.plugins.themes.kindeditor.js/kindeditor-min.js-->放在editor文件夹下 6 2.在页面上引入相关的js&css文件 7 <!-- 导入Kindeditor相关文件 -

第05章—Swagger2打造在线接口文档

spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxiaohang/springboot 一.添加Swagger2依赖 <dependency><!--添加Swagger依赖 --> <groupId>io.springfox</groupId> <artifactId>springfox-swagger

“在线Excel文档编辑系统”新手开发训练营开营啦,完全免费,欲报从速!

疫情当前,远程办公风口正盛,腾讯文档.飞书.石墨文档等在线协同办公软件供应商迅速崛起.抓住风口,你也能造就下一个BAT. 本期训练营,将引导您快速开发一款基于Vue框架,简单.能迅速投入使用的在线Excel文档编辑软件. 新手开发训练营,助您找回丢失的时间! 面向所有前端开发者, 推出3 天学会:在 Vue 框架下搭建“在线Excel”文档编辑系统 旨在给您更棒的学习体验! 最重要的是,本期活动全程免费!不限报名人数! √    小群交流,零基础也能轻松学会 √     直播互动,授课 & 答疑

在线office文档编辑NTKO使用心得

目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便.有一些第三方ActiveX浏览器控件:比如科瀚的SOAOffice中间件.卓正软件的pageoffice控件.WebOffice控件还有我这篇文章所要说到的NTKO. 二.什么是NTKO 通俗易懂来讲就是能够直接在浏览器上查看编辑word文档,并保存到web服务器上的控件. 借用官方的话,是能够在IE

强烈推荐 在线接口文档管理工具 小幺鸡 小团队可以省掉测试了

在朋友那儿看到一个不错的在线文档管理工具 主要特点 : 在线接口测试 在线测试,方便前后端开发,降低错误率.支持:xml.json.txt.binary.websocket 可视化编辑与分享 可视化编辑器,完善的分享机制,多功能导出.让接口撰写变得十分简单 安全保障 基于阿里云服务器,提供安全备份系统.多家公司使用,安全证明. 代码开源 可离线安装到内网服务器仅供公司内部使用.接口在线测试,降低接口错误率 开放源码,支持任意修改 简洁明了的API 简单的维护更新 多种导出满足不同需求 自己搭建试