zoukankan      html  css  js  c++  java
  • 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&amp;Scale=0.95&amp;ZoomTransition=easeOut&amp;ZoomTime=0.5&amp;ZoomInterval=0.2&amp;FitPageOnLoad=true&amp;FitWidthOnLoad=true&amp;MinZoomSize=0.2&amp;MaxZoomSize=5&amp;InitViewMode=Portrait&amp;ViewModeToolsVisible=true&amp;ZoomToolsVisible=true&amp;NavToolsVisible=true&amp;CursorToolsVisible=true&amp;SearchToolsVisible=true&amp;localeChain=zh_CN&amp;key=$72815cdaaec3681f9d0"></object>

     

    提取出的参数是这样的:


    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.1aspnet设为Application,这些webform的文件带有cs源文件,可以修改重新编译,或是改写为Asp.net MVC也不是什么难事。如下图是显示当前路径下的文档:

    flexpaper1

     

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

    flexpaper2

     

    看服务端文档的目录下文件Performance Driven IT Management.pdf, 有被自动转换了许多的Performance Driven IT Management.pdf1.swf…的文件。这样是为了加快加载速度。这样,借用Flexpaper与swftools我们很容易构建WEB在线PDF文档浏览系统。

     

    您可能感兴趣的文章:

    使用PDFBox提取PDF文件中文本

     


    作者:Petter Liu
    出处:http://www.cnblogs.com/wintersun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    该文章也同时发布在我的独立博客中-Petter Liu Blog

  • 相关阅读:
    对象不支持此属性或方法
    继承多态
    GetType和typeof的区别
    比较高效的表格行背景变色及选定高亮JS
    C#获取存储过程的Return返回值和Output输出参数值
    删除表中重复记录,只保留一行
    实现自定义的ToolTip
    状态管理之Cookie
    Microsoft SQL Server,错误: 5120
    IE/Firefox中全局正则表达式的兼容
  • 原文地址:https://www.cnblogs.com/wintersun/p/3515483.html
Copyright © 2011-2022 走看看