flex 4.1无法截屏并保存为PDF



我使用Flex 4.1和AlivePdf来生成pdf。我的要求如下:

我有一个xml数据数组。我需要迭代该数组,开发一个图表,截取该图表的屏幕截图(使用imagessnapshot . 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的创建时间?

要使ImageSnapshot更快,您可以尝试:

    降低DPI(不是300,也许150就足够了?)
  • 使用PNG编码器,这-在我的经验-比JPEG编码器

相关内容

  • 没有找到相关文章

最新更新