Domanda

È possibile generare documenti PDF in un'applicazione Adobe AIR senza ricorrere a un servizio Web di andata e ritorno per generare il PDF?Ho esaminato i Flex Reports iniziali su GoogleCode, ma è necessario un viaggio di andata e ritorno per generare il PDF effettivo.

Dato che AIR dovrebbe essere l'estremità desktop per le RIA, esiste un modo per ottenere questo risultato?Sospetto di aver trascurato qualcosa, ma le mie ricerche nella documentazione non rivelano molto e, dato l'obiettivo di AIR, non posso credere che sia semplicemente qualcosa che non hanno incluso.

È stato utile?

Soluzione

C'è VivoPDF, che è una libreria di generazione PDF per ActionScript che dovrebbe funzionare, è stata creata appositamente per la situazione che descrivi.

Altri suggerimenti

Ho appena aggiunto una demo di Adobe Air + Javascript + AlivePDF:

Questa dimostrazione no richiedono flessibilità ed è piuttosto semplice.

http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf-without-flex/

Uno degli altri team con cui lavoro sta lavorando su un'applicazione di disegno basata su Flex e sono rimasti totalmente sorpresi dal fatto che AIR/Flex non disponga della creazione di PDF integrata.Alla fine hanno creato il proprio semplice creatore di PDF basato sulle specifiche PDF.

Sì, è molto semplice creare PDF utilizzando AlivePDF, ecco il codice di esempio, il primo metodo crea un pdf e il secondo metodo salva il pdf su disco e restituisce il percorso, sentiti libero di porre qualsiasi domanda.

public function createFlexPdf() : String
{
    pdf = new PDF();
    pdf.setDisplayMode (Display.FULL_WIDTH,Layout.ONE_COLUMN,Mode.FIT_TO_PAGE,0.96);
    pdf.setViewerPreferences(ToolBar.SHOW,MenuBar.HIDE,WindowUI.SHOW,FitWindow.RESIZED,CenterWindow.CENTERED);
    pdf.addPage();
    var myFontStyle:IFont = new CoreFont ( FontFamily.COURIER );
    pdf.setFont(myFontStyle,10);
        pdf.addText('Kamran Aslam',10,20);//String, X-Coord, Y-Coord 
    return savePDF();
}
private function savePDF():String
{
    var fileStream:FileStream = new FileStream();
    var file:File = File.createTempDirectory();
    file = file.resolvePath("temp.pdf");
    fileStream.open(file, FileMode.WRITE);
    var bytes:ByteArray = pdf.save(Method.LOCAL);
    fileStream.writeBytes(bytes);
    fileStream.close();
    return file.url;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top