2010-07-27 84 views
1

我讓用戶能夠將圖像上傳到我的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之類的東西,但我可以使用我可以編譯的組件到成品。

回答

1

我相信AlivePDF for Flash現在具有讀取PDF文件的功能。您也可以嘗試使用PurePDF。你可以使用其中的一些來獲得想要的頁面並將其轉換爲圖像。

+0

我在AlivePDF中看不到任何內容可以讀取/轉換,PurePDF似乎可能有內容。將不得不回顧一下。 – invertedSpear 2010-07-28 15:26:54

+0

根據http://alivepdf.bytearray.org/?p=348,可以導入現有PDF的PDFi正在成爲AlivePDF的一部分。然而,沒有人注意到這實際上已經發生,並且已經接近2年了。 – adamcodes 2010-07-28 16:06:15

1

你見過swftools?它能夠將PDF轉換爲SWF,PNG,JPG等...

+0

也許我正在閱讀錯誤的文檔,但swftools似乎是獨立的,我需要直接在我的AIR應用中使用某些東西。 – invertedSpear 2010-07-28 15:22:48

+0

事實上,它是獨立的,但如果您使用AIR 2.0,則可以直接與AIR 2.0中的命令行腳本進行交互。這會有可能嗎? – infomaniac 2010-07-28 20:33:02

+0

我明白你的目標是什麼,可能是一個很好的解決方案,但對於我們的產品經理來說,要求第三方安裝會很難。 – invertedSpear 2010-07-28 21:20:48