zoukankan      html  css  js  c++  java
  • Flex 加载pdf

     如果想要在flex加载pdf,虽然pdf格式是开源的,但是自己去解析太麻烦了,pdf还要分页之类的,现在网上各种文档上传可以在线看很多都是pdf,当然也有word,excel之类,其实很多都是转了swf,flex加载swf,这次只说加载pdf,首先先下载一个swftools,这个工具有命令行可以转pdf 到dwg 简单命令是 pdf2swf -o 1.swf -s flashversion=9 1.pdf,其中flashversion最好选9以上 ,低版本有时候导出swf flex加载不出来。github上有flexpaper这个组件,flexpaper这个组件就不不细说了,还要结合flex-iframe.swc这个组件来用,flexpapaer和flex-iframe.swc地址http://files.cnblogs.com/files/haibalai/FlexPaper.rar。

      这里做成一个组件,熟悉flexview开发的都知道widget模式,这里xml格式

      

    1 <?xml version="1.0" encoding="utf-8" ?>
    2 <data>
    3   <pdf name="aaa" url="http://locahost/FlexPaper/index.html?fileSrc=aaa.pdf"></pdf>
    4   <pdf name="bbb" url="http://locahost/FlexPaper/index.html?fileSrc=bbb.pdf"></pdf>
    5 </data>

      组件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <viewer:BaseWidget xmlns:esri="http://www.esri.com/2008/ags"
     3                    xmlns:fx="http://ns.adobe.com/mxml/2009"
     4                    xmlns:s="library://ns.adobe.com/flex/spark"
     5                    xmlns:mx="library://ns.adobe.com/flex/mx"
     6                    xmlns:viewer="com.esri.viewer.*"
     7                    xmlns:components="com.esri.viewer.components.*"
     8                    x="600" y="300"
     9                    xmlns:code="http://code.google.com/p/flex-iframe/"
    10                    widgetConfigLoaded="basewidget_widgetConfigLoaded()">
    11     
    12     
    13     <fx:Script>
    14         <![CDATA[
    15                 import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
    16                 import com.esri.viewer.managers.EventBus;
    17                 import com.szpl.extension.base.impl.AccessPoint;
    18                 import com.szpl.extension.tools.config.ILayerConfig;
    19                 import com.szpl.extension.tools.layer.ILayer;
    20                 import com.szpl.extension.tools.layer.LayerVisibleChangeEvent;
    21                 import flash.events.MouseEvent;
    22                 import flash.utils.ByteArray;
    23                 import mx.collections.ArrayCollection;
    24                 import mx.core.FlexGlobals;
    25                 import mx.rpc.events.FaultEvent;
    26                 import mx.rpc.events.ResultEvent;
    27                 import mx.utils.UIDUtil;
    28                 import spark.events.IndexChangeEvent;
    29                 
    30     
    31 
    32     
    33 
    34     
    35         var arr:ArrayCollection = new ArrayCollection();
    36         protected  function basewidget_widgetConfigLoaded():void
    37         {
    38             if (configXML)
    39             {
    40                 
    41                 var pdfxmls:XMLList = configXML.pdf;
    42                 for each(var pdfxml:XML in pdfxmls)
    43                 {
    44                     var obj:Object = new Object();
    45                     obj.name = String(pdfxml.@name);
    46                     obj.url = String(pdfxml.@url);
    47                     arr.addItem(obj);
    48                 }
    49                 list.dataProvider = arr;
    50             }
    51             if (arr.length > 0)
    52             {
    53                 list.selectedIndex = 0;
    54                 OfficeProject.source = (list.selectedItem as Object).url;
    55             }
    56         }
    57         
    58     
    59     private function listChangeHandle(event:IndexChangeEvent):void
    60     {
    61         OfficeProject.source = (list.selectedItem as Object).url;
    62     }
    63        
    64        
    65     
    66          ]]>
    67 </fx:Script>
    68     
    69 <viewer:WidgetTemplate id="LocateWT" width="980" height="100%" 
    70            enableMinimizeButton="false" >
    71     
    72 <s:HGroup height="100%" width = "100%">
    73 <s:List id="list" height="100%" width="150"  change="listChangeHandle(event)" labelField="name">
    74     
    75 </s:List>
    76         
    77 <code:IFrame  id="OfficeProject" width="790" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off"/>    
    78         
    79 </s:HGroup>    
    80 </viewer:WidgetTemplate>
    81  
    82 </viewer:BaseWidget>
  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/haibalai/p/5032050.html
Copyright © 2011-2022 走看看