我正在让用户能够将图像上传到我的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,但我可以使用我可以编译到的组件成品。
答案 0 :(得分:1)
我相信AlivePDF for Flash现在可以读取PDF文件。您也可以尝试使用PurePDF。您可以使用其中一个来获取所需的页面并将其转换为图像。
答案 1 :(得分:1)
你见过swftools吗?它能够将PDF转换为SWF,PNG,JPG等......