FlexPaper 2.2.1介绍与提取嵌入的文档
源起看到某个公司内网的公文使用FlexPaper组件来显示文档,在这儿是GoogleCode Project的主页, 还有现在的官方主页。目前FlexPaper是个开源项目,GPLv3协议下免费使用,也有商业许可版本与无限制版。下面我们先介绍如何从预览的SWF中保存成PDF文档。
查看网页html,找到如下,看到这里使用是FlexPaperViewer 1.5.1:
<object width="100%" height="100%" id="_571282476" name=
"_571282476" data=
"/st/static/common/js/flexpaper/FlexPaperViewer1.5.1.swf" type=
"application/x-shockwave-flash"><param name="wmode" value=
"transparent">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="quality" value="high">
<param name="flashvars" value=
"SwfFile=%2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8126&Scale=0.95&ZoomTransition=easeOut&ZoomTime=0.5&ZoomInterval=0.2&FitPageOnLoad=true&FitWidthOnLoad=true&MinZoomSize=0.2&MaxZoomSize=5&InitViewMode=Portrait&ViewModeToolsVisible=true&ZoomToolsVisible=true&NavToolsVisible=true&CursorToolsVisible=true&SearchToolsVisible=true&localeChain=zh_CN&key=$72815cdaaec3681f9d0"></object>
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
提取出的参数是这样的:
SwfFile=%2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8127
&Scale=0.95&ZoomTransition=easeOut
&ZoomTime=0.5&ZoomInterval=0.2&FitPageOnLoad=true
&FitWidthOnLoad=true
&MinZoomSize=0.2&MaxZoomSize=5
&InitViewMode=Portrait
&ViewModeToolsVisible=true
&ZoomToolsVisible=true&NavToolsVisible=true
&CursorToolsVisible=true&SearchToolsVisible=true&localeChain=zh_CN
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):初始化时自适应页面宽度,与工具栏上的适应宽度按钮同样的效果
看上面的参数,我们得知 %2Fodm%2Fdocument%2Fdocument!getSWFStream.action%3FdocumentId%3D8127 这个字符串是文件源,然后我们可以使用百度应用URL解码得到这样的结果/odm/document/document!getSWFStream.action?documentId=8127, 然后我们就可以直接在浏览器访问拼接以后的URL
http://odm.xxxxx.com/odm/document/document!getSWFStream.action?documentId=8127
这时我们可以使用打印文件方式来保存为PDF文件, 借用doPdf,Pdf factory组件也可以轻易保存PDF。到这儿我们是逆向的方式来保存文档。
FlexPaper目前最新版本是2.2.1,另外还有一个开源项目swftools可以转换pdf文件到swf文件。下载服务端DEMO,可以看到支持asp.net, java, php平台。 以下介绍Asp.net下,有几个简单的页面来配置,之前把...\FlexPaper_2.2.1\aspnet设为Application,这些webform的文件带有cs源文件,可以修改重新编译,或是改写为Asp.net MVC也不是什么难事。如下图是显示当前路径下的文档:

当我们打开这个文件在IE9中是这样的:

看服务端文档的目录下文件Performance Driven IT Management.pdf, 有被自动转换了许多的Performance Driven IT Management.pdf1.swf…的文件。这样是为了加快加载速度。这样,借用Flexpaper与swftools我们很容易构建WEB在线PDF文档浏览系统。
您可能感兴趣的文章:
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。
FlexPaper 2.2.1介绍与提取嵌入的文档的更多相关文章
- Visual Studio 2008(C#)XML注释提取成帮助文档的方法
Visual Studio 2008(C#)XML注释提取成帮助文档的方法 1.给方法和类添加XML注释 可以手动添加,具体规则可以看MSDN:http://msdn.microsoft.co ...
- NVelocity介绍,NVelocity中文手册文档及实例下载
NVelocity是什么velocity英音:[vi'lɔsiti]美音:[və'lɑsətɪ]近在做一个项目,客户要求有网站模板功能,能够自主编辑网站的风格,因为这个系统是为政府部门做子站系统,举个 ...
- flexpaper 开源轻量级的在浏览器上显示各种文档的组件
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持.它可以被当做Flex的库 ...
- 提取一个txt 文档中含指定字符串的所有行
将一个txt 文档中含指定字符串内容的所有行提取出来并保存至新的txt文档中 例如,要提取 1.txt 中所有包含”aaa” 的行的内容 只需在此文件夹中新建一个bat文件,输入以下代码,双击运行,便 ...
- 运用Edraw为WPF应用程序嵌入Office文档的方法总结
具体描述了运用Edraw Office Viewer Component为WPF应用长须嵌入MS Word,Excel以及Power Point的方法. 打开Visual Studio,并创建一个新的 ...
- rbac介绍、自动生成接口文档、jwt介绍与快速签发认证、jwt定制返回格式
今日内容概要 RBAC 自动生成接口文档 jwt介绍与快速使用 jwt定制返回格式 jwt源码分析 内容详细 1.RBAC(重要) # RBAC 是基于角色的访问控制(Role-Based Acces ...
- C# 提取Word文档中的图片
C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...
- Poi之Word文档结构介绍
1.poi之word文档结构介绍之正文段落 一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元 获取所有段落:List<XWPFParagraph ...
- 使用Java POI来选择提取Word文档中的表格信息
通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...
随机推荐
- 让VS2010/VS2012添加新类时自动添加public关键字
在VS添加类别的时候,每次都需要添加public关键字,表示好麻烦. 但是可以避免这个麻烦的. 通过修改VS2010的ItemTemplate,可以避免这个麻烦. 修改方法如下: 1. 打开文件夹Mi ...
- 彻底解决Google浏览器CSS居中问题
div做的界面时,又出现CSS hack(CSS兼容浏览器问题)在IE内核浏览器或者firefox浏览器中都能居中,没有居中的可以用其特殊标签来设定居中,如下划线 _ IE6优先识别,!importa ...
- Linux Ubuntu搭建git服务器
1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...
- 二十、【.Net开源】EFW框架核心类库之WebService服务
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.1:http://pan.baidu.com/s/1qWJjo3U EFW框架实例源代码下载:http://pan.baid ...
- 创维37K05HR黑屏有声音故障维修
转载1: 接一台创维新机37L05HR,1年多,刚过保.开机图像声音正常,放10分钟左右黑屏.声音正常.关机再开有正常.2分钟又出现黑屏.在保修期内,售后 来修两次此类故障都没有根治.拆机测5V 12 ...
- 字符集与Mysql字符集处理(一)
一.字符集总结 其实大多数的知识在这篇文章里已经讲得非常清楚了.这里只是讲一下自己的感悟. 1. UTF-8虽然是以UTF(unicode transfermation format)开头的,但是 ...
- Javascript倒计时组件new TimeSpan(hours, minutes, minutes)
function TimeSpan(h, m, s) { this.h = Number(h); this.m = Number(m); this.s = Number(s); } TimeSpan. ...
- ECMASCRIPT 6中字符串的新特性
本文将覆盖在ECMAScript 6 (ES6)中,字符串的新特性. Unicode 码位(code point)转义 Unicode字符码位的长度是21位[2].而JavaScript的字符串,是1 ...
- Python单元测试框架之pytest -- 断言
对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...
- Direct3D11学习:(四)计时和动画
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 接触过游戏开发的人都知道,在游戏中,计时器是一个非常重要的工具,用来精确地控制游戏帧数和动画的播放.要正确实现动 ...