文档章节

使用FlexPaper查看文档

 挨踢精英
发布于 2015/01/09 17:40
字数 691
阅读 72
收藏 1

安装插件  百度搜索

调用

//创建swf文件 第一个参数进入转换的文件路径  第二个参数输出路径的文件路径
   Office2Swf os = new Office2Swf("", main.getFileUrl());
   os.officeToPdf();

配置文件  配置pdf2swf的路径 以及文件输出路径

LUCENE_PATH=D\:\\tomcat-7.0.55\\webapps\\PICCAssets\\uploadfile\\accept\\
PDF2SWF_PATH=D\:\\pdf2swf\\

 

Office2Swf   的具体实现

package com.atsc.struts.valuesystem.dao;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.util.PropertyResourceBundle;
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;
import com.atsc.common.ConfigManager;
public class Office2Swf {
 private String inputFile;
 private String outputFile;
 private String hpath;
 String fileName = "";
 String pdfPath = "";
 String LUCENE_PATH = "";
 String pdf2swf = "";
 public String getInputFile() {
  return inputFile;
 }
 public void setInputFile(String inputFile) {
  this.inputFile = inputFile;
 }
 public String getOutputFile() {
  return outputFile;
 }
 public void setOutputFile(String outputFile) {
  this.outputFile = outputFile;
 }
 /**
  * 初始化文件上传路径   以及 文件输出路径
  * pdf2swf路径   文件路径LUCENE_PATH
  * @param inputFile
  * @param outputFile
  */
 public Office2Swf(String inputFile, String outputFile) {
  this.inputFile = inputFile;
  this.outputFile = outputFile;
  PropertyResourceBundle configPic;
  try {
   configPic = new PropertyResourceBundle(ConfigManager.class.getClassLoader().getResourceAsStream("config.properties"));
   LUCENE_PATH = configPic.getString("LUCENE_PATH");
   pdf2swf = configPic.getString("PDF2SWF_PATH");
  } catch (IOException e1) {
   e1.printStackTrace();
  }
 }
 /**
  * 转化office文档为pdf
  * @throws FileNotFoundException
  */
 public void officeToPdf() throws FileNotFoundException {
  String stroffice = outputFile.split("/")[2];
  String hpath1 = getClass().getClassLoader().getResource("/").getPath();
  String hpath2 = hpath1.replace("HTAssets", "upload").replace("WEB-INF", "uploadfile").replace("classes", "accept");
  hpath = hpath2.substring(1);
  String strPdf = stroffice.substring(0, stroffice.lastIndexOf(".")) + ".pdf";
  fileName = LUCENE_PATH + stroffice;
  pdfPath = LUCENE_PATH + strPdf;
  File inputF = new File(fileName);
  File outputF = new File(pdfPath);
  OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
  try {
   connection.connect();
   DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
   converter.convert(inputF, outputF);
   System.out.println("转化成功");
  } catch (ConnectException e) {
   System.out.println("打开openoffice失败");
   e.printStackTrace();
  } finally {
   connection.disconnect();
   connection = null;
  }
  this.pdfToSwf();
 }
 /**
  * 转化pdf为swf
  */
 public void pdfToSwf() {
  String swfpath = pdfPath.substring(0, pdfPath.lastIndexOf("."));
  System.out.println("转化的SWF路径:" + swfpath);
  try {
   Process p = Runtime.getRuntime().exec(pdf2swf + "pdf2swf.exe -o " + swfpath + ".swf -s flashversion=9 " + pdfPath);
   BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
   while (br.readLine() != null) {
    System.out.println("正在转化swf中,请稍等。。。。。。。");
   }
  } catch (IOException e) {
   System.out.println("读取文件出现问题");
   e.printStackTrace();
  } finally {
   System.out.println("转化swf完成");
  }
 }
}

页面调用swf文件

需要引入的flexpaper插件的js

<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>

 <%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
String filename=request.getAttribute("filename").toString();
String hpath = (request.getAttribute("hpath").toString())+"upload/uploadfile/accept/";
out.write("<SCRIPT language="+"'"+"JavaScript"+"'"+">var filename="+"'"+filename+"'"+";var hpath="+"'"+hpath+"'"+";</SCRIPT>");
%>
<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 fpath = "swfview/"+filename; 
          var hpath = "http://192.168.1.10:8080/PICCAssets/uploadfile/accept/";
          var fp = new FlexPaperViewer( 
       'FlexPaperViewer',
       'viewerPlaceHolder', { config : {
       SwfFile : escape(hpath+filename),
       //SwfFile : escape("d:/swf"+filename),
       Scale : 1.2, 
       ZoomTransition : 'easeOut',
       ZoomTime : 0.5,
       ZoomInterval : 0.2,
       FitPageOnLoad : true,
       FitWidthOnLoad : true,
       FullScreenAsMaxWindow : false,
       ProgressiveLoading : false,
       MinZoomSize : 0.2,
       MaxZoomSize : 5,
       SearchMatchAll : false,
       //InitViewMode : 'TwoPage',
       ViewModeToolsVisible : true,
       ZoomToolsVisible : true,
       NavToolsVisible : true,
       CursorToolsVisible : false,
       //SearchToolsVisible : true,
         localeChain: 'zh_CN'
       }});
          </script>
 </div>
</body>
</html>

© 著作权归作者所有

粉丝 2
博文 32
码字总数 8431
作品 0
株洲
私信 提问
解决FlexPaper分页分段加载问题

FlexPaper是一个开源的PDF文档在线查看控件。用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件。FlexPaper能够对需要查看的文档进行...

张xtpgyaps
2011/07/09
0
3
如何为 Drupal 站点添加在线电子书阅读功能

像 Google Book 和 百度文库 那样的文档在线阅读功能非常实用,要想为 Drupal 站点实现这样的文档在线阅读功能,可以通过 SWF Tools 模块来实现。 A. 启用并配置 SWF Tools 和 FlexPaper 首先...

芒果龙
2011/10/19
0
0
FlexPaper 使用入门——在线PDF显示

FlexPaper是一个被设计用来与PDF2SWF一起使用,开源轻量级的在浏览器上显示各种文档的组件, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。...

小编辑
2010/07/05
28.8K
9
FlexPaper 1.3.1 发布,在线PDF显示

FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。...

小编辑
2010/07/05
3.6K
4
我在flashbuilder中使用FlexPaper无法加载swf文件

在下参考http://www.oschina.net/p/flexpaper 这篇文章,将flexpaper swc文件引入flashbuilder,并制定了bin-debug中的swf文件,运行之后flexpaper空间一直无法显示出swf文件的内容,直接查看...

大侠酷裤马路
2011/01/27
3.8K
2

没有更多内容

加载失败,请刷新页面

加载更多

弹性盒模型常见例子

这篇文章主要是分享了三个例子( 垂直居中、响应式、圣杯 ),介绍了Flexbox的主要应用场景,并与传统方式对比, 感受Flexbox布局带来的便捷开发体验。 1 垂直居中对齐 不使用Flexbox <style>...

凌兮洛
22分钟前
0
0
Redis分布式锁服务

概述 在多线程环境下,通常会使用锁来保证有且只有一个线程来操作共享资源。比如: object obj = new object();lock (obj) { //操作共享资源 } 利用操作系统提供的锁机制,可以确保多线...

中关村的老男孩
27分钟前
1
0
idea+mybatis

报错信息如下 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in com/bdqn/dao/UserDaoMappe......

冥焱
27分钟前
2
0
Android之用sharedUserId来实现不同应用(APK)数据共享

android:sharedUserId 当APK安装的时候,userid这个标志就会产生。APK在设备上的整个生命周期中,这个ID不再改变。不同设备上同一个应用包可能有不同的userid,重要的是在给定的设备上,每个...

天王盖地虎626
29分钟前
1
0
如何给龙芯电脑录屏

vokoscreen Gnome提供的录屏插件screencast https://extensions.gnome.org/extension/690/easyscreencast/...

gugudu
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部