WFTools工具包中的PDF2SWF工具可用来将PDF格式文件转换成SWF格式。使用下面的命令可以将pdf文件转换为单页swf文件。

  pdf2swf  pdfPath  –o swfPath  –T 9  –f

  pdf2swf为pdf2swf二进制命令的绝对路径;pdfpath为要进行转换的PDF文件的绝对路径;swfPath为转换后swf文件的路径;-T 9 用来设定转换的swf版本为9,这样设置是因为某些版本的swf文件并不能用flexpaper正常显示出来;-f在转换的文档每页中插入一帧,提高转换后文档的稳定性。

  每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。应用程序不能创建自己的Runtime类实例,可以通过Runtime类的getRuntime方法获得当前运行时。获得Runtime类实例之后,即可以调用该类的exec方法创建一个新的进程来执行制定的字符串命令。因此,可以利用exec方法来调用之前所述的PDF2SWF命令来完成PDF至SWF文件的转换。

  实现利用SWFTools转换PDF文件为SWF格式的算法流程如5-1所示:

  第一步,创建PDF2SWF转换命令字符串。

  第二步,获得当前运行时Runtime,调用第一步中设定好的转换命令,进行转换

1. FlexPaper简介

  FlexPaper是一个开源轻量级的文档浏览组件,被设计和比如PDF2SWF库(包含于SWFTools)一起工作,使得在网页上,Adobe Flex以及别的基于Flash的应用程序中显示和交互PDF文件成为可能。即,使得在没有安装PDF阅读器软件的情况下浏览PDF文件成为可能。FlexPaper项目同时提供了Flex库和独立的Flash版本。

2. 使用FlexPaper

 2.1 下载FlexPaper

  FlexPaper在google code上的项目地址为http://code.google.com/p/flexpaper/。目前,FlexPaper最新的flash版本为FlexPaper_1.5.1_flash.zip

下载、解压后,可以看到如图6-1显示的目录:

图6-1 FlexPaper压缩包目录

  主要文件,文件夹说明:

  • examples文件夹:存放FlexPaper使用的例子

  • js文件夹:存放FlexPaper调用的js文件

  • php文件夹:存放php使用FlexPaper的例子

  • index.html:例子主页

  • FlexPaperViewer.swf:FlexPaper的核心文件

  • playerProductInstall.swf:如果客户端浏览器的flashplayer版本过低,将嵌入此swf文件

 2.2 FlexPaper参数说明

  • SwfFile(String):需要使用FlexPaper打开的文档

  • Scale(Number):初始化缩放比例,参数值应该是大于零的整数(1=100%)

  • ZoomTransition(String):FlexPaper中缩放样式,它使用和Tweener一样的样式,默认参数值为easeOut,其他可选值包括:easenone,easeout,linear,easeoutquad

  • ZoomTime(Number):从一个缩放比例变为另外一个缩放比例需要花费的时间,该参数值应该为0或更大

  • ZoomInterval(Number):缩放比例之间间隔,默认值为0.1,该值应该为正数

  • FitPageOnLoad(Boolean):初始化时自适应页面,与使用工具栏上的适应页面按钮同样的效果

  • FitWidthOnLoad(Boolean):初始化时自适应页面宽度,与工具栏上的适应宽度按钮同样的效果

  • localeChain(String):设置地区(语言),目前支持一下语言:

en_US (English)

fr_FR (French)

zh_CN (Chinese,Simple)

es_ES (Spanish)

pt_BR (Brazilian Portugese)

ru_RU (Russian)

fi_FN (FInnish)

de_DE (German)

nl_NL (Netherlands)

tr_TR (Turkish)

se_SE (Swedish)

pt_PT (Portugese)

el_EL (Greek)

da_DN (Danish)

cz_CS (Czech)

it_IT (Italian)

pl_PL (Polish)

pv_FN (Finish)

hu_HU (Hungarian)

  • FullScreenAsMaxWindow(Boolean):当设置为true时,单击全拼按钮会打开一个FlexPaper最大化的新窗口而不是全屏,当由于flash播放器因为安全而禁止全屏,而使用flexpaper作为独立的flash播放器的时候设置为true是个优先选择

  • ProgressiveLoading(Boolean):当设置为true时,展示文档时不会加载完整个文档,而是逐步加载,但是需要将文档中转化为9以上的版本(使用pdf2swf的时候使用-T 9标签)

  • MaxZoomSize(Number):设置最大的缩放比例

  • MinZoomSize(Number):设置最小的缩放比例

  • SearchMatchAll(Boolean):设置为true时,单击搜索所有符合条件的地方高亮显示

  • InitViewMode(String):设置启动模式如“Portrait”或“TowPage”

  • ViewModeToolsVisible(Boolean):工具栏上是否显示样式选择框

  • ZoomToolsVisible(Boolean):工具栏上时候显示缩放工具

  • NavToolsVisible(Boolean):工具栏上是否显示导航工具

  • CursorToolsVisible(Boolean):工具栏上是否显示光标工具

  • SearchToolsVisible(Boolean):工具栏上是否显示搜索工具

 2.3 FlexPaper例子

  创建html页面test.html,代码如下:

<html>
<head>
  <title>Flexpaper例子</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type="text/javascript" src="js/flexpaper_flash.js"></script>
</head>
<body>
  <div style="position:absolute;left:10px;top:10px;">
  <a id="viewerPlaceHolder" style="width:680px;height:480px;display:block"></a>
  <script type="text/javascript">
    var fp = new FlexPaperViewer(
    'FlexPaperViewer', /* 对应FlexPaperViewer.swf文件*/
    'viewerPlaceHolder', { config : {
      SwfFile : 'Paper.swf',
      Scale : 0.6,
      ZoomTransition : 'easeOut',
      ZoomTime : 0.5,
      ZoomInterval : 0.2,
      FitPageOnLoad : true,
      FitWidthOnLoad : true,
      FullScreenAsMaxWindow : false,
      ProgressiveLoading : false,
      MinZoomSize : 0.2,
      MaxZoomSize : 5,
      SearchMatchAll : false,
      InitViewMode : 'Portrait',
      ViewModeToolsVisible : true,
      ZoomToolsVisible : true,
      NavToolsVisible : true,
      CursorToolsVisible : true,
      SearchToolsVisible : true,
      localeChain: 'zh_CN'
    }});
  </script>
  </div>
</body>
</html>

  test.html文件以及需要的js,swf文件组织结构如图6-2所示:

  

图6-2 test.html文件组织结构

  显示Paper.swf文件的效果如图6-3所示:

图6-3 FlexPaper下显示Paper.swf效果

FlexPaper:使用flash在线展示pdf的更多相关文章

  1. 利用pdfJS实现以读取文件流方式在线展示pdf文件

    第一步:下载源码https://github.com/mozilla/pdf.js 第二步:构建PDF.js 第三步:修改viewer.js var DEFAULT_URL = 'compressed ...

  2. FlexPaper_1.2.1.swc——Flex在线显示PDF文档(使用FlexPaper)感悟

    http://www.cnblogs.com/wuhenke/archive/2010/03/16/1686885.html 想想自己先前搞PDF转SWF,然后在线浏览功能时,实在是费了不少精力.后来 ...

  3. 移动端展示pdf(在线打开pdf)

    需求:在手机微信浏览器或者其他浏览器中打开pdf 准备:前端插件:查找pdf.js  官网地址:http://mozilla.github.io/pdf.js/ 在官网中下载demo 注释:pdf的d ...

  4. 借助flexpaper实现word在线预览和打印

    为了实现word能够在web上尽量以原始的排版样式展现出来,选择基于activex控件的方式太过于依赖某种浏览器,并且存在可能需要花费金钱购买相应的控件产品:于是借助flexpaper这种flash展 ...

  5. 实现在线阅读pdf功能--php

    在网上找了很久,想要实现一个在线阅读word,pdf文件的功能,网上的资料很多,但是提到真正怎么实现的比较少.现在我来简单说明一下,我实现的过程. 我现在只能实现在线阅读pdf(将word等转换成pd ...

  6. pdf.js插件使用记录,在线打开pdf

    天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究了一下这个控件. 有些人很好奇,在线打开pdf文档浏览器不是支持吗.是的你说的都是现代浏览 ...

  7. 如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流

    有些网站使用 flash 在线播放视频,不方便进行下载. 可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频 ...

  8. 在线提取PDF中图片和文字

    无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字.如下图所示:结果本人测 ...

  9. 在线阅读PDF文件js插件——pdf.js

    最近接到一个需求大致是这样的,要求在移动端和pc端能够在线阅读pdf文件,类似百度文库的功能. 首先想到的就是插件,github(全球最大的男性交友网站- -恩)上一大堆啊,首先找到一个PDFobje ...

随机推荐

  1. Shell脚本学习之sed详解

    在编写shell脚本的过程中,我们经常需要使用sed流编辑器和awk对文本文件进行处理. 一.什么是sed? sed 是一种在线编辑器,它一次处理一行内容.sed是非交互式的编辑器.它不会修改文件,除 ...

  2. Jenkins部署Web项目到远程tomcat(通过jenkins插件)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  3. 技术实战:基于 MHA 方式实现 MySQL 的高可用(转)

    转自:http://os.51cto.com/art/201307/401702_all.htm MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据.本文分享了基于 ...

  4. CentOS安装Mysql5.6并配置远程连接

    使用的是阿里云提供的CentOS7.3版本,安装的是mysql5.6.40版本.此次安装采用解压压缩包并配置的方式. 1. 卸载自带的Mariadb Centos7将默认数据库mysql替换成了Mar ...

  5. Dockerfile 构建前端node应用并用shell脚本实现jenkins自动构建

    cat Dockerfile.node.pre FROM centos MAINTAINER zhao*******h.cn ENV LANG en_US.UTF-8 RUN /bin/cp /usr ...

  6. java.lang.NullPointerException 空指针异常问题

    java.lang.NullPointerException 空指针异常问题: 空指针异常抛出的异常信息一般是: Exception in thread "main" java.l ...

  7. JavaScript Window Screen 用户屏幕的信息

    window.screen 对象包含有关用户屏幕的信息. Window Screen window.screen 对象在编写时可以不使用 window 这个前缀. 一些属性: screen.avail ...

  8. 关于ARP协议

    什么是arp协议: arp协议是地址解析协议,英文是address resolution protocol 通过IP地址可以获得mac地址 两个主机的通信归根到底是MAC地址之间的通信 在TCP/IP ...

  9. 自动化部署必备技能—定制化RPM包[转载]

    回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...

  10. shell脚本中解决SCP命令需要输入密码的问题

    使用密钥文件.       这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件.   在主机A上执行如下命令来生成配对密钥: ssh-keygen -t r ...