PDFの生成にFlex 4.1とAlivePdfを使用しています。私の要件は次のようなものです:
私はxmlデータの配列を持っています。その配列を反復処理し、グラフを作成し、そのグラフのスクリーン ショットを (ImageSnapshot.captureImage を使用して) 取得し、デスクトップ フォルダーに pdf として保存する必要があります。ここでは、次のコード スニペットを使用しています。
for(count=0; count<limit; count++) {
var xml:XML = new XML(xmlDataArr[count]);
displayChart(xml); // this creates entire chart
storeReportPDF(count);
}
private function storeGrowthReportPDF(index:int):void {
var image:ImageSnapshot = ImageSnapshot.captureImage(growthReportChart, 300, new JPEGEncoder);
var fs:FileStream = new FileStream();
var file: File = File.documentsDirectory.resolvePath("./GrowthReportBatch/growthReport_"+index+".pdf");
fs.open(file, FileMode.WRITE);
var pdfBytes:ByteArray = createGrowthReportPdf (image.data);
fs.writeBytes(pdfBytes);
fs.close();
}
たとえば、50 個の xml がある場合、50 個の pdf をその特定の場所に保存する必要があります。問題は、時間がかかりすぎることです。PDFの作成時間を最小限に抑えることはできますか?