• 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>
  • 相关阅读:
    【codevs1079】回家
    【codevs1245】最小的N个和
    【codevs1231】最优布线问题
    【codevs1078】最小生成树
    【NOIP1999】【codevs1083】Cantor表
    【NOIP2006】【codevs1075】明明的随机数
    【NOIP2001】【codevs1011】数的计算
    【POJ2259】Team Queue(队列,模拟)
    【LOJ119】单源最短路 模板
    Jzoj4900 平方数
  • 原文地址:https://www.cnblogs.com/haibalai/p/5032050.html
Copyright © 2020-2023  润新知