如何将PDF文件转换为图像?

时间:2010-07-27 17:17:43

标签: flex actionscript-3 pdf actionscript flex3

我正在让用户能够将图像上传到我的Air应用程序,然后在图像控件中显示该图像。但我需要以相同的方式允许PDF上传,因此我需要将PDF转换为图像。我只关心他们现在上传的PDF的第一页。

我在做的是: 1)用户浏览具有文件引用控件的文件 2)用户选择图像或PDF进行上传 3)我将所述图像编码为base64并存储它 4)然后我从那个base64加载类似的东西:

public function decodeImage(b64String:String):void{
  var decoder:Base64Decoder = new Base64Decoder();
  decoder.decode(b64String);
  var imgLoader:Loader = new Loader();
  imgLoader.loadBytes(decoder.toByteArray());
  imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,decodedImageLoaded);
}

private function decodedImageLoaded(event:Event):void{
  var imgLoader:Loader = (event.target as LoaderInfo).loader;
  var bmp:Bitmap = Bitmap(imgLoader.content);
  imgLoader.removeEventListener(Event.COMPLETE, decodedImageLoaded);
  var img:Image = new Image();
  img.source = bmp;
  this.addChild(img);
}

此方法适用于.gif,.jpg和.png。在我的过程中的某个时刻,可能是初始上传我需要将PDF的第一页转换为png,以便我可以使用此过程的其余部分。

我欢迎任何想法,唯一的要求是它必须是Air应用程序的一部分,我不能使用像在服务器上运行的ImageMagick,但我可以使用我可以编译到的组件成品。

2 个答案:

答案 0 :(得分:1)

我相信AlivePDF for Flash现在可以读取PDF文件。您也可以尝试使用PurePDF。您可以使用其中一个来获取所需的页面并将其转换为图像。

答案 1 :(得分:1)

你见过swftools吗?它能够将PDF转换为SWF,PNG,JPG等......