是否可以从iOS的AIR应用程序导出PDF

时间:2012-05-04 03:27:56

标签: ios actionscript-3 flash air alivepdf

我有一个使用Flash CS5.5构建的应用程序,使用AIR3.1导出并通过Apple的Enterprise安装程序分发(允许我绕过appstore批准)。

我现在正试图将某个PDF(使用AlivePDF生成)以某种方式导出到iPad中,或者导入到iBooks中,或者只是在Safari中打开它。

这就是我用于桌面版应用的内容。尽管脚本非常混乱,但它可以完成工作。我只是不知道如何转换它并使其在iPad上运行

//Populate listbox component from array

function noEmpty(item:*, index:int, array:Array):Boolean{
  return item != undefined;
}

for(var i:int = 0; i < MovieClip(root).selectedProducts.length; i++) {
    if(MovieClip(root).selectedProducts[i] != undefined){
        selectedProductsText.dataProvider.addItem({label: MovieClip(root).selectedProducts[i]});
    }
}

var myTextFormat:TextFormat = new TextFormat();
myTextFormat.size = 20;
myTextFormat.font = "Arial";
myTextFormat.color = 0x000000;
myTextFormat.leftMargin = 30;
selectedProductsText.rowHeight = 40;

selectedProductsText.setRendererStyle("textFormat", myTextFormat);

//AlivePDF, generate PDF

import org.alivepdf.pdf.PDF;
import org.alivepdf.layout.Orientation;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.display.Display;
import org.alivepdf.saving.Method;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.fonts.Style;
import org.alivepdf.colors.RGBColor;
import com.adobe.images.*;

function convertString(_value:String):String
{
 var returnString:String = "";
 var _chr:String = String.fromCharCode(13);
 var tempArray:Array = _value.split(_chr);
 for(var i:uint = 0; i < tempArray.length; i++)
  {
   returnString += tempArray[i] + "\n";
  }   
  return returnString;
}

var pdf:PDF = new PDF(); 

pdf.setDisplayMode (Display.REAL);     
pdf.addPage(); 

pdf.writeText(7, convertString(  MovieClip(root).selectedProducts.filter(noEmpty).join('\n')    ));

var buffer:ByteArray = pdf.save(Method.LOCAL); 
var file:FileReference = new FileReference(); 

//save PDF button

btnPdf.addEventListener( MouseEvent.CLICK, generatePDF );

function generatePDF ( e:MouseEvent )
{
    file.save(buffer, "Product Selection List.pdf");
}

1 个答案:

答案 0 :(得分:0)

在使用AIR for iOS完成一些工作之后我会说你的问题是需要更改文件保存和存储在设备上的方式。

您需要将文件保存到应用程序存储目录,其中包含我用来存储jpg图像的内容:

f = File.documentsDirectory.resolvePath(imagename+".jpg");      
stream = new FileStream();
stream.open(f, FileMode.WRITE);                                         
j = new JPGEncoder(80);     
bytes = new ByteArray();
bytes = j.encode(snapShot.bitmapData);
stream.writeBytes(bytes, 0, bytes.bytesAvailable);
stream.close();

我不确定通过AIR如何或者甚至可以将pdf发送到iBooks。您可以在应用程序中使用StageWebView来显示PDF。