2

我有一个从 Flash CS5.5 构建的应用程序,使用 AIR3.1 导出并通过 Apple 的企业设置分发(允许我绕过应用商店的批准)。

我现在正在尝试以某种方式将 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");
}
4

1 回答 1

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。

于 2012-05-04T06:41:13.947 回答