我让用户能够将图像上传到我的Air应用程序,然后在图像控件中显示此图像。但我需要以相同的方式允许PDF上传,所以我需要将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之类的东西,但我可以使用我可以编译的组件到成品。
我在AlivePDF中看不到任何内容可以读取/转换,PurePDF似乎可能有内容。将不得不回顾一下。 – invertedSpear 2010-07-28 15:26:54
根据http://alivepdf.bytearray.org/?p=348,可以导入现有PDF的PDFi正在成为AlivePDF的一部分。然而,没有人注意到这实际上已经发生,并且已经接近2年了。 – adamcodes 2010-07-28 16:06:15