flexpaper各项参数详解及使用

1.下载安装包

(1)安装openoffice:使用时需要开启服务(命令开启:

cd C:\Program Files (x86)\OpenOffice 4\program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

)

(2)安装安装swfTools

(3)下载flexpaper(只需要用到js文件和FlexPaperViewer.swf:

flexpaper_flash_debug.js
flexpaper_flash.js
jquery.js

)

(4))下载OpenDocument

2.创建上传documentUpload.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/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;}
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> 

3.后台文件转化类

package com.upload;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;  

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;  

/**
 * doc docx格式转换
 */
public class DocConverter {
    private static final int environment = 1;// 环境 1:windows 2:linux
    private String fileString;// (只涉及pdf2swf路径问题)
    private String outputPath = "";// 输入路径 ,如果不设置就输出在默认的位置
    private String fileName;
    private File pdfFile;
    private File swfFile;
    private File docFile;  

    public DocConverter(String fileString) {
        ini(fileString);
    }  

    /**
     * 重新设置file
     *
     * @param fileString
     */
    public void setFile(String fileString) {
        ini(fileString);
    }  

    /**
     * 初始化
     *
     * @param fileString
     */
    private void ini(String fileString) {
        this.fileString = fileString;
        fileName = fileString.substring(0, fileString.lastIndexOf("."));
        docFile = new File(fileString);
        pdfFile = new File(fileName + ".pdf");
        swfFile = new File(fileName + ".swf");
    }  

    /**
     * 转为PDF
     *
     * @param file
     */
    private void doc2pdf() throws Exception {
        if (docFile.exists()) {
            if (!pdfFile.exists()) {
                OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
                try {
                    connection.connect();
                    DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
                    converter.convert(docFile, pdfFile);
                    connection.disconnect();
                    System.out.println("pdf转换成功,PDF输出:" + pdfFile.getPath());
                } catch (java.net.ConnectException e) {
                    e.printStackTrace();
                    System.out.println("swf转换器异常,openoffice服务未启动!");
                    throw e;
                } catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
                    e.printStackTrace();
                    System.out.println("swf转换器异常,读取转换文件失败");
                    throw e;
                } catch (Exception e) {
                    e.printStackTrace();
                    throw e;
                }
            } else {
                System.out.println("已经转换为pdf,不需要再进行转化");
            }
        } else {
            System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****");
        }
    }  

    /**
     * 转换成 swf
     */
    @SuppressWarnings("unused")
    private void pdf2swf() throws Exception {
        Runtime r = Runtime.getRuntime();
        if (!swfFile.exists()) {
            if (pdfFile.exists()) {
                if (environment == 1) {            // windows环境处理
                    try {
                        Process p = r.exec("D:/Program Files/SWFTools/pdf2swf.exe "+ pdfFile.getPath() + " -o "+ swfFile.getPath() + " -T 9");
                        System.out.print(loadStream(p.getInputStream()));
                        System.err.print(loadStream(p.getErrorStream()));
                        System.out.print(loadStream(p.getInputStream()));
                        System.err.println("swf转换成功"
                                + swfFile.getPath());
                        if (pdfFile.exists()) {
                            pdfFile.delete();
                        }  

                    } catch (IOException e) {
                        e.printStackTrace();
                        throw e;
                    }
                } else if (environment == 2) {            // linux环境处理
                    try {
                        Process p = r.exec("pdf2swf " + pdfFile.getPath()
                                + " -o " + swfFile.getPath() + " -T 9");
                        System.out.print(loadStream(p.getInputStream()));
                        System.err.print(loadStream(p.getErrorStream()));
                        System.err.println("swf转换成功"
                                + swfFile.getPath());
                        if (pdfFile.exists()) {
                            pdfFile.delete();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        throw e;
                    }
                }
            } else {
                System.out.println("pdf不存在,无法转换");
            }
        } else {
            System.out.println("swf已经存在不需要转换");
        }
    }  

    static String loadStream(InputStream in) throws IOException {  

        int ptr = 0;
        in = new BufferedInputStream(in);
        StringBuffer buffer = new StringBuffer();  

        while ((ptr = in.read()) != -1) {
            buffer.append((char) ptr);
        }  

        return buffer.toString();
    }
    /**
     * 转换主方法
     */
    @SuppressWarnings("unused")
    public boolean conver() {  

        if (swfFile.exists()) {
            System.out.println("swf转换器开始工作,该文件已经转换为swf");
            return true;
        }  

        if (environment == 1) {
            System.out.println("swf转换器开始工作,当前设置运行环境windows");
        } //Linux

      //else {
          //  System.out.println("swf转换器开始工作,当前设置运行环境linux");
       // }
        try {
            doc2pdf();
            pdf2swf();
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }  

        if (swfFile.exists()) {
            return true;
        } else {
            return false;
        }
    }  

    /**
     * 返回文件路径
     *
     * @param s
     */
    public String getswfPath() {
        if (swfFile.exists()) {
            String tempString = swfFile.getPath();
            tempString = tempString.replaceAll("\\\\", "/");
            return tempString;
        } else {
            return "";
        }  

    }
    /**
     * 设置输出路径
     */
    public void setOutputPath(String outputPath) {
        this.outputPath = outputPath;
        if (!outputPath.equals("")) {
            String realName = fileName.substring(fileName.lastIndexOf("/"),
                    fileName.lastIndexOf("."));
            if (outputPath.charAt(outputPath.length()) == ‘/‘) {
                swfFile = new File(outputPath + realName + ".swf");
            } else {
                swfFile = new File(outputPath + realName + ".swf");
            }
        }
    }  

}  

4.创建文档上传转换处理文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>  

<%@page import="java.io.*"%>
<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.cectsims.util.DocConverter"%>
<%
//文件上传采用cos组件上传,可更换为commons-fileupload上传,文件上传后,保存在upload文件夹
//获取文件上传路径
String saveDirectory =application.getRealPath("/")+"upload";
//打印上传路径信息
System.out.println(saveDirectory);
//每个文件最大50m
int maxPostSize = 50 * 1024 * 1024 ;
//采用cos缺省的命名策略,重名后加1,2,3...如果不加dfp重名将覆盖
DefaultFileRenamePolicy dfp = new DefaultFileRenamePolicy();
//response的编码为"UTF-8",同时采用缺省的文件名冲突解决策略,实现上传,如果不加dfp重名将覆盖
MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"UTF-8",dfp);
//MultipartRequest multi = new MultipartRequest(request, saveDirectory, maxPostSize,"UTF-8");
//输出反馈信息
 Enumeration files = multi.getFileNames();
     while (files.hasMoreElements()) {
        System.err.println("ccc");
       String name = (String)files.nextElement();
       File f = multi.getFile(name);
       if(f!=null){
         String fileName = multi.getFilesystemName(name);
         //获取上传文件的扩展名
         String extName=fileName.substring(fileName.lastIndexOf(".")+1);
         //文件全路径
         String lastFileName= saveDirectory+"\\" + fileName;
         //获取需要转换的文件名,将路径名中的‘\‘替换为‘/‘
         String converfilename = saveDirectory.replaceAll("\\\\", "/")+"/"+fileName;
         System.out.println(converfilename);
         //调用转换类DocConverter,并将需要转换的文件传递给该类的构造方法
         DocConverter d = new DocConverter(converfilename);
         //调用conver方法开始转换,先执行doc2pdf()将office文件转换为pdf;再执行pdf2swf()将pdf转换为swf;
         d.conver();
         //调用getswfPath()方法,打印转换后的swf文件路径
         System.out.println(d.getswfPath());
         //生成swf相对路径,以便传递给flexpaper播放器
         String swfpath = "upload"+d.getswfPath().substring(d.getswfPath().lastIndexOf("/"));
         System.out.println(swfpath);
         //将相对路径放入sessio中保存
         session.setAttribute("swfpath", swfpath);
         out.println("上传的文件:"+lastFileName);
         out.println("文件类型"+extName);
         out.println("<hr>");
       }
     }  

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
    body {margin-top:100px;background:#fff;font-family: Verdana, Tahoma;}
    a {color:#CE4614;}
    #msg-box {color: #CE4614; font-size:0.9em;text-align:center;}
    #msg-box .logo {border-bottom:5px solid #ECE5D9;margin-bottom:20px;padding-bottom:10px;}
    #msg-box .title {font-size:1.4em;font-weight:bold;margin:0 0 30px 0;}
    #msg-box .nav {margin-top:20px;}
</style>
</head>
<body>
    <div>
        <form name="viewForm" id="form_swf" action="documnetView.jsp" method="POST">
            <input type=‘submit‘ value=‘预览‘ class=‘BUTTON SUBMIT‘/>
        </form>
    </div>
</body>
</html>  

5.预览页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String swfFilePath=session.getAttribute("swfpath").toString();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/flexpaper_flash.js"></script>
<script type="text/javascript" src="js/flexpaper_flash_debug.js"></script>
<style type="text/css" media="screen">
            html, body  { height:100%; }
            body { margin:0; padding:0; overflow:auto; }
            #flashContent { display:none; }
        </style>   

<title>文档在线预览系统</title>
</head>
<body>
        <div style="position:absolute;left:50px;top:10px;">
            <a id="viewerPlaceHolder" style="width:820px;height:650px;display:block"></a>  

            <script type="text/javascript">
                var fp = new FlexPaperViewer(
                         ‘FlexPaperViewer‘,  //这里是FlexPaperViewer.swf的路径,相对根目录
                         ‘viewerPlaceHolder‘, //这里是要显示Swf的区域的ID

               { config : {
                         SwfFile : escape(‘<%=swfFilePath%>‘),  //这里是要显示的swf的位置
                         Scale : 0.6,   //缩放比例
                         ZoomTransition : ‘easeOut‘,  //Flexpaper中缩放样式,它使用和Tweener一样的样式,默认参数值为easeOut.其他可选值包括: easenone, easeo                                //ut, linear, easeoutquad
                         ZoomTime : 0.5,  //从一个缩放比例变为另外一个缩放比例需要花费的时间,该参数值应该为0或更大。
                         ZoomInterval : 0.2, //缩放比例之间间隔,默认值为0.1,该值为正数。
                         FitPageOnLoad : true,  //初始化的时候自适应页面,与使用工具栏上的适应页面按钮同样的效果。
                         FitWidthOnLoad : false,//初始化的时候自适应页面宽度,与工具栏上的适应宽度按钮同样的效果。
                         FullScreenAsMaxWindow : false,  //是否支持全屏,当设置为true的时候,单击全屏按钮会打开一个flexpaper最大化的新窗口而不是全屏,当由于fla                                 //sh播放器因为安全而禁止全屏,而使用flexpaper作为独立的flash播放器的时候设置为true是个优先选择。
                         ProgressiveLoading : false,  //当设置为true的时候,展示文档时不会加载完整个文档,而是逐步加载,但是需要将文档转化为9以上的flash版本(使                               //用pdf2swf的时候使用-T 9 标签)。
                         MinZoomSize : 0.2,  //最小的缩放比例。
                         MaxZoomSize : 5,  //设置最大的缩放比例。
                         SearchMatchAll : false,  //设置为true的时候,单击搜索所有符合条件的地方高亮显示。
                         InitViewMode : ‘SinglePage‘,  //启动模式

                         ViewModeToolsVisible : true,//工具栏上是否显示样式选择框(就是显示缩略图或分页显示的工具)
                         ZoomToolsVisible : true,  //工具栏上是否显示缩放工具
                         NavToolsVisible : true,  //工具栏上是否显示导航工具(也就是页码工具)
                         CursorToolsVisible : true, //工具栏上是否显示光标工具
                         SearchToolsVisible : true,  //工具栏上是否显示搜索

                         localeChain: ‘en_CN‘  //语言
                         }});
            </script>
        </div>
</body>
</html>  

6.flexpaper所需jar:cos.jar

时间: 2024-10-13 09:06:38

flexpaper各项参数详解及使用的相关文章

window.location获取url各项参数详解

window.location方法后还还可以带href,search等参数,下面我们来看看获取url各项参数的办法. URL即:统一资源定位符 (Uniform Resource Locator, URL)完整的URL由这几个部分构成:scheme://host:port/path?query#fragmentscheme:通信协议常用的http,ftp,maito等 http://localhost/test/test.htm?id=1代码如下 复制代码 <html><head>

[JS]window.location获取url各项参数详解

window.location方法后还还可以带href,search等参数,下面我们来看看获取url各项参数的办法. URL即:统一资源定位符 (Uniform Resource Locator, URL)完整的URL由这几个部分构成:scheme://host:port/path?query#fragmentscheme:通信协议常用的http,ftp,maito等 http://localhost/test/test.htm?id=1代码如下 复制代码 <html><head>

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

jquery ajax 方法及各参数详解

jquery ajax 方法及各参数详解 1.$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息. 参数列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分

Nginx内置变量以及日志格式变量参数详解

Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为空字符串 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html". $d

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

day01_linux中与Oracle有关的内核参数详解

linux中与Oracle有关的内核参数详解 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip

SWFTOOLS PDF2SWF 参数详解

转载至:http://blog.csdn.net/iamduoluo/article/details/6820329 SWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2swf.exe wav2swf.exe 具体的功能就顾名思义了. 其中把pdf转成swf的工具就是pdf2swf了.在命令行中运行pdf2swf src.pdf des.swf一般能满足需求.而命令行参数可以通过pd

httpUrlConnection的参数详解

post方式的的请求过程: // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 // http正文内,因此需要设为true, 默认情况下是false; httpUrlConnection.setDoOutput(true); // 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); // Post 请求不能使用缓存 httpUrlConnection.setUse