Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现
笔者最近在给客户开发文档管理系统时,客户要求上传到管理系统的文档(包括ppt,word,excel,txt)只能预览不允许下载。笔者想到了 百度文库和豆丁网,百度文库和豆丁网的在线预览都是利用flash来播放文档的,在网上查阅了大量资料,终于实现了该项功能,现将自己的设计和实现整理如 下。
一、如何将文档转成flash支持的swf文件实现在线播放?
1.先用openOffice把ppt、word、excel、txt类型的文档转换成pdf
2.用swftools将pdf转换成swf,然后利用FlexPaper插件实现在线播放预览。
二、具体实现
1.安装必备工具组件
(1)安装openoffice,openoffice是开源免费的文字处理软件,它可以将office文档转成pdf文件(笔者安装到D:\Program Files),openOffice下载地址/download/index.html
(2)安装完openoffice后必须启动其server,以命令行方式启动openoffice server。进入cmd命令行提示符D:\Program 3\program\
键入如下命令:
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
进入windows任务管理器查看有个进程soffice.bin,说明openoffice启动成功!
(3)安装swfTools(安装到 D:\Program Files)swftools作用是将pdf转换为swf文件以便flexpaper播放。下载地址:/download.html
(4)下载flexpaper,下载地址:flexpaper.devaldi/download/
笔者下载的是FlexPaper_1.5.1,下载后将其解压备用。
(5)下载OpenDocument文档转换器 JODConverter,JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用OpenOffice来进行转换工作,它能进行以下的转换工作:
a.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office
b.OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。
下载地址:sourceforge/projects/jodconverter/files/
我们后面开发主要用它的jodconverter-2.2.2.jar包
2.软件开发过程
(1)启动Eclipse,新建web项目名称为ctcesims
(2)将上面第4步解压的flexpaper文件中的js文件夹(包含了 flexpaper_flash_debug.js,flexpaper_flash.js,jquery.js,这三个js文件主要是预览swf文件的 插件)拷贝至网站根目录;将FlexPaperViewer.swf拷贝至网站根目录下(该文件主要是用在网页中播放swf文件的播放器),目录结构如下 图
(3)创建documentUpload.jsp文件
1.先用openOffice把ppt、word、excel、txt类型的文档转换成pdf
2.用swftools将pdf转换成swf,然后利用FlexPaper插件实现在线播放预览。
二、具体实现
1.安装必备工具组件
(1)安装openoffice,openoffice是开源免费的文字处理软件,它可以将office文档转成pdf文件(笔者安装到D:\Program Files),openOffice下载地址/download/index.html
(2)安装完openoffice后必须启动其server,以命令行方式启动openoffice server。进入cmd命令行提示符D:\Program 3\program\
键入如下命令:
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
进入windows任务管理器查看有个进程soffice.bin,说明openoffice启动成功!
(3)安装swfTools(安装到 D:\Program Files)swftools作用是将pdf转换为swf文件以便flexpaper播放。下载地址:/download.html
(4)下载flexpaper,下载地址:flexpaper.devaldi/download/
笔者下载的是FlexPaper_1.5.1,下载后将其解压备用。
(5)下载OpenDocument文档转换器 JODConverter,JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用OpenOffice来进行转换工作,它能进行以下的转换工作:
a.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office
b.OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。
下载地址:sourceforge/projects/jodconverter/files/
我们后面开发主要用它的jodconverter-2.2.2.jar包
2.软件开发过程
(1)启动Eclipse,新建web项目名称为ctcesims
(2)将上面第4步解压的flexpaper文件中的js文件夹(包含了 flexpaper_flash_debug.js,flexpaper_flash.js,jquery.js,这三个js文件主要是预览swf文件的 插件)拷贝至网站根目录;将FlexPaperViewer.swf拷贝至网站根目录下(该文件主要是用在网页中播放swf文件的播放器),目录结构如下 图
(3)创建documentUpload.jsp文件
[html]view plaincopy
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 accesstoken expired<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>文档在线预览系统</title>
8 <style>
9 body {margin-top:100px;background:#fff;font-family: Verdana, Tahoma;}
10 a {color:#CE4614;}
11 #msg-box {color: #CE4614; font-size:0.9em;text-align:center;}
12 #msg-box .logo {border-bottom:5px solid #ECE5D9;margin-bottom:20px;padding-bottom:10px;}
mysql怎么卸载干净13 #msg-box .title {font-size:1.4em;font-weight:bold;margin:0 0 30px 0;}
网站建设推荐14 #msg-box .nav {margin-top:20px;}
15 </style>
16
17 </head>
18 <body>
19 <div id="msg-box">
20 <form name="form1" method="post" enctype="multipart/form-data" action="docUploadConvertAction.jsp">
21 <div class="title">
22 请上传要处理的文件,过程可能需要几分钟,请稍候片刻。
23 </div>
24 <p>
25 <input name="file1" type="file">
26 </p>
27 <p>
28 <input type="submit" name="Submit" value="上传">
29 </p>
30 </form >
31 </div>
32 </body>
33 </html>
(4)创建文档转换类DocConverter.java
[java]view plaincopy
34 sims.util;
35 import java.io.BufferedInputStream;
36 import java.io.File;
37 import java.io.IOException;
38 import java.io.InputStream;
39
40 import com.artofsolving.jodconverter.DocumentConverter;
41 import com.artofsolving.tion.OpenOfficeConnection;
42 import com.artofsolving.tion.SocketOpenOfficeConnection;
43 import com.artofsolving.verter.OpenOfficeDocumentConverter;
44
jquery下载文件请求45 /**
46 * doc docx格式转换
47 */
48 public class DocConverter {
49 private static final int environment = 1;// 环境 1:windows 2:linux
50 private String fileString;// (只涉及pdf2swf路径问题)
51 private String outputPath = "";// 输入路径 ,如果不设置就输出在默认的位置
52 private String fileName;
53 private File pdfFile;
54 private File swfFile;
55 private File docFile;
56
57 public DocConverter(String fileString) {
58 ini(fileString);
59 }
60
61 /**
62 * 重新设置file
63 *
64 * @param fileString
65 */
66 public void setFile(String fileString) {
67 ini(fileString);
68 }
69
70 /**
71 * 初始化
72 *
73 * @param fileString
74 */
75 private void ini(String fileString) {
76 this.fileString = fileString;
77 小程序单选按钮样式 fileName = fileString.substring(0, fileString.lastIndexOf("."));
78 docFile = new File(fileString);
linux route命令详解79 pdfFile = new File(fileName + ".pdf");
80 swfFile = new File(fileName + ".swf");
81 }
82
83 /**
84 * 转为PDF
85 *
86 * @param file
87 */
88 private void doc2pdf() throws Exception {
89 if (ists()) {
90 if (!ists()) {
91 OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
92 try {
93 t();
94 DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
95 vert(docFile, pdfFile);
96 // close the connection
97 connection.disconnect();
98 System.out.println("****pdf转换成功,PDF输出:" + Path()+ "****");
99 } catch (java.ConnectException e) {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论