2008-09-10 17 views
6

Est-il possible de générer des documents PDF dans une application Adobe AIR sans avoir recours à un service Web aller-retour pour générer le PDF? J'ai examiné les rapports Flex initiaux sur Google Code, mais cela nécessite un aller-retour pour générer le PDF réel.Impression dans Adobe AIR - Génération PDF autonome

Étant donné que AIR est censé être l'extrémité du bureau pour les RIA, y a-t-il un moyen d'y parvenir? Je soupçonne que je néglige quelque chose, mais mes recherches dans la documentation ne révèlent pas trop et étant donné la cible pour AIR je ne peux pas croire que c'est juste quelque chose qu'ils n'ont pas inclus.

Répondre

7

AlivePDF, qui est une bibliothèque de génération de PDF pour ActionScript qui devrait fonctionner, elle a été créée uniquement pour la situation que vous décrivez.

0

L'une des autres équipes sur laquelle je travaille travaille sur une application de dessin basée sur Flex et ils ont été totalement surpris que AIR/Flex n'ait pas de création de fichiers PDF intégrée. Ils ont fini par rouler leur propre créateur PDF simple basé sur la spécification PDF.

1

ajouté un démo Adobe Air + Javascript + AlivePDF:

Cette démo n'a pas besoin flex et est assez simple.

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

+0

Salut .. Je suis également pour l'option pdf, je dois générer une longue pdf d'environ 15 pages, dans lequel je dois ajouter plusieurs composants MXML sur résultat pdf, je suis en train d'utiliser en vie pdf pour la même chose, mais ma page fait défiler verticalement et la partie cachée étant exclue du pdf et aussi je ne reçois pas de bonne qualité pdf J'essayais d'ouvrir votre démo mais le lien ne fonctionnait pas, ça faisait longtemps ... si vous peut m'aider un peu, puis pl. Merci d'avance. –

0

Oui, il est très facile de créer des PDF à l'aide AlivePDF, voici l'exemple de code, première méthode crée un pdf et second enregistrer le pdf sur le disque et retourne le chemin, ne hésitez pas à poser toutes les questions .

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; 
}