当前位置: 首页 > news >正文

利用jodconverter+openoffice+flexpaper实现的在线文档系统核心demo

文章中的内容部分来源于网上,感谢各种开源项目的帮助

一、实现功能:

通过系统对后台文档进行读取,转码(转为PDF),最后以swf的方式从网页显示,类似百度文库以及各类在线文库系统的功能。

由于后期仍需完善,因此只把核心部分进行叙述。

二、实现步骤:

首先需要搭建好java web平台,具体实现省略;

其次,需主要安装openoffice;

最后,下载需要连接openoffice的jar包:jodconverter

三、测试连接openoffice

主要代码如下:

private File sourceFile;		//转换源文件
private File pdfFile;		//PDF目标文件
private File swfFile;		//SWF目标文件

OpenOfficeConnection connection;
 connection = new SocketOpenOfficeConnection("localhost",8100);
try {
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection); 
converter.convert(sourceFile, pdfFile);
pdfFile.createNewFile();
connection.disconnect(); 
System.out.println("第二步:转换为PDF格式路径" + pdfFile.getPath());
} catch (java.net.ConnectException e) {
e.printStackTrace();
System.out.println("OpenOffice服务未启动");
throw e;
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
e.printStackTrace();
System.out.println("读取文件失败");
throw e;
} catch (Exception e){
e.printStackTrace();
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}								


最开始使用这段代码时出现两个问题:

1、在创建对象时 connection = new SocketOpenOfficeConnection(8100);的时候一直出错,后来查看了一下文档,改用 、

connection = new SocketOpenOfficeConnection("localhost",8100);

2、在connection.connect();创建连接的时候也一直弹错,又查了查,是因为没有开启openoffice服务造成的。

cmd->cd到openoffice目录,启动OpenOffice服务:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

详见http://www.artofsolving.com/node/10

最后进行测试即可

截图如下:

附源码:

1、主要为两个文件夹,一个为主项目webroot,可以直接放入Tomcat中;

2、另一个为src文件夹,包含ConvertServlet.java,就是执行文档读取,转码过程的核心文件;

下载地址:http://download.csdn.net/detail/longteng1116/5177457

相关文章:

  • 八数码编码(优化数据结构,优化算法)
  • mac 下 git svn 设置代理
  • 实时机票/火车票抓取系统整体架构
  • 我是伪程序员
  • asp.net实验一:hello world!
  • asp.net实验二:连接sql server 2008数据库
  • ASP.NET实验三:读取web.config连接数据库
  • 谷歌面试题(持续更新)
  • web前端实验一:利用Js捕获鼠标事件实现图片切换
  • web前端实验二:利用JS保护网页源代码
  • 五年专业编程的14个经验
  • 大数四则运算
  • JDBC学习之-Connection(一)
  • Linux实验二:Linux 内核模块测试
  • 套接字选项(getsockopt()与setsockopt())
  • AWS实战 - 利用IAM对S3做访问控制
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ES6 ...操作符
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • node学习系列之简单文件上传
  • spark本地环境的搭建到运行第一个spark程序
  • VUE es6技巧写法(持续更新中~~~)
  • Vue 重置组件到初始状态
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 读懂package.json -- 依赖管理
  • 关于extract.autodesk.io的一些说明
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端技术周刊 2019-02-11 Serverless
  • 通过npm或yarn自动生成vue组件
  • 项目管理碎碎念系列之一:干系人管理
  • 移动端解决方案学习记录
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​secrets --- 生成管理密码的安全随机数​
  • # .NET Framework中使用命名管道进行进程间通信
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (day 12)JavaScript学习笔记(数组3)
  • (windows2012共享文件夹和防火墙设置
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (阿里云万网)-域名注册购买实名流程
  • (二)WCF的Binding模型
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ***监测系统的构建(chkrootkit )
  • .bat批处理出现中文乱码的情况
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net 使用ajax控件后如何调用前端脚本
  • .Net多线程总结
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @Responsebody与@RequestBody
  • [ C++ ] STL---string类的使用指南
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)