2012-05-04 8 views
2

私は、Flash CS5.5からビルドされ、AIR3.1を使用してエクスポートされ、Appleのエンタープライズ設定を介して配布されるアプリを持っています(私はアプリストア承認をバイパスできます) 。iOS向けAIRアプリケーションからPDFを書き出すことは可能ですか

iBooksにiPadにエクスポートされたPDF(AlivePDFを使用して生成されたもの)をSafariで開いてみようとしています。

これは私のアプリのデスクトップ版に使用しているものです。スクリプティングは非常に乱雑ですが、それは仕事を完了します。私はわずかにこれを変換する方法を知っていると私はあなたの問題は、あなたがファイルを保存する方法を変更する必要があるだろうと言うでしょうiOS用のAIRでいくつかの仕事をしたことは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"); 
} 
+0

特にiosでは動作しない部分はありますか? (オフトピックですが、スタックオーバーフローに関するプライベートメッセージオプションが見つかりませんでした):Air 3 for iosはどのように機能しましたか?私は自分自身で試してみることを検討してきました。 – user1103976

+0

user1103976:iDeviceにファイルを保存する場所がわかりません。アップルはOSにはあまりオープンしていないので、すべてがお尻の痛みです。 iOSのAIR3は正常に動作しているようです。これはObjective Cを習得せずにアプリケーションを開発する唯一の手段です。パフォーマンスはデスクトップ/ラップトップほど大きくはありませんが、最適化しておくと悪くはありません。 – user1172903

答えて

0

では動作しないでくださいデバイスに保存されます。

あなたは、私が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(); 

私はそれを送信するために空気を通っても可能ですかかかどうかわからないんだけどpdfからiBookへ。あなたのアプリ内でStageWebViewを使うことはできますが、PDFを表示することは可能です。

+0

ありがとう、それは多少役立ちます。それは可能だとは思っていませんでしたが、誰かが私を間違っていると思うかもしれないと思っていました。 – user1172903

関連する問題