• › Connexion
  • Blog RIA.do.be
  • Blog Web2Entreprise
Section separator

Catégories

  • Annonces
  • Évènements
  • Concepts et Usages
  • Général
  • Notes Techniques
  • Références
Adobe EMEA Silver Solution Partner Section separator

Abonnement

  • RSS Articles Articles (RSS)
  • RSS Articles Commentaires (RSS)
  • RSS mail Articles (Email)
  • Populaires
  • Récents
  • Commentaires
  • Premiers Retours sur l’Adobe MAX 2009 (vu 12 988 fois)
  • Comment forcer les styles des composants Flex/AS3 d’une librairie SWC réutilisable (vu 5 707 fois)
  • Utiliser le framework Cairngorm pour Flex 2 (1/4) (vu 5 388 fois)
  • Architecture MVC: Cairngorm ou PureMVC ? (vu 3 232 fois)
  • Le problème du ModelLocator Cairngorm (vu 3 044 fois)
Articles récents
  • Ouverture des inscriptions pour le webinar ConfluenceFx
  • Développeur, Communicant, Designer ou Ergonome ? Changez pour Kap IT
  • Application AIR : Comment Sauvegarder/Charger un Document et lui Associer une Extension ?
  • Détection de l’Événement « Coller » avec Flex Builder 3 et Flash Player 9
  • Premiers Retours sur l’Adobe MAX 2009
Commentaires récents
  • Fadi Mansour dans Détection de l’Événement « Coller » avec Flex Builder 3 et Flash Player 9
  • nico dans Détection de l’Événement « Coller » avec Flex Builder 3 et Flash Player 9
  • Florian dans Application AIR : Comment Sauvegarder/Charger un Document et lui Associer une Extension ?
  • Fadi Mansour dans Comment intégrer une application Flex dans une application Flash ou AS3
  • yoann dans Comment intégrer une application Flex dans une application Flash ou AS3

Auteurs

  • Alexis Kartmann (12)
  • Benoit Kogut-Kubiak (2)
  • Christoher Bograt (1)
  • Cyril Daloz (7)
  • Daniel Pesic (5)
  • Fadi Mansour (3)
  • Florian Fesseler (1)
  • Guillaume Mignard (2)
  • Jean de Laulanié (2)
  • Julien Revel (19)
  • Mahmoud Ramadan (1)
  • Matthieu Jobert (1)
  • Stéphane Guyot (1)
  • Stéphane Koëth (2)
  • Yann Graufogel (2)
Section separator

Tags

Adobe MAX BlazeDS RIA AIR kapinspect fds LCDS livecycle compilation Cairngorm Kap IT AS3 builder AMF PureMVC skin Flex JVM RTMP Web 2.0 Framework Corporate actionscript MVC Kap Lab
Section separator

Archives

  • février 2010 (1)
  • décembre 2009 (2)
  • novembre 2009 (1)
  • octobre 2009 (3)
  • septembre 2009 (1)
  • août 2009 (1)
  • avril 2009 (2)
  • février 2009 (2)
  • janvier 2009 (4)
  • décembre 2008 (4)
  • novembre 2008 (2)
  • octobre 2008 (2)
  • septembre 2008 (2)
  • août 2008 (1)
  • juin 2008 (1)
  • avril 2008 (4)
  • mars 2008 (3)
  • février 2008 (2)
  • janvier 2008 (1)
  • décembre 2007 (3)
  • novembre 2007 (1)
  • septembre 2007 (1)
  • juillet 2007 (1)
  • juin 2007 (1)
  • mai 2007 (4)
  • avril 2007 (8)
  • mars 2007 (2)
  • février 2007 (1)

Marque-pages

  • Adobe Labs
  • AStrois Blog
  • Code moi un mouton
  • Coma Informatique
Section separator

Kap IT

  • Site Web
  • Blog Web2Entreprise
  • Blog RIA.do.be
  • Lab

Blog RIA.do.be

Veille, Recherche et Développement RIA Flex-AS3-LiveCycle

Génération PDF avec Livecycle Data Services

Par Julien RevelgravatarFermerAuteur : Julien Revel Email : julien.revel@kapit.fr
Site : http://www.kapit.fr
A propos : Voir les autres billets de l'auteur (19)
, publié le 19 mars 2008

En général, Livecycle Data Services est plutôt connu pour être le canal de communication Flex <–> Java de Adobe.
Moins connu - alors que très pratique -:voici comment générer en PDF vos données issues de Flex.

Comment ça marche ?

Le processus de génération utilisé par LCDS s’apparente aux technologies XSL/XSLT, en l’occurrence: fournir du contenu XML à une template, dans le but d’obtenir un document (ici PDF).
En pratique, le code client Flex fournit du contenu XML au service Java LCDS (1), lequel fusionne le modèle de document (template)(2) avec les données pour obtenir le document PDF final(3).

Génération PDF avec Livecycle Data Services
3 données sont impliquées :

  • la template (format pdf) assure la mise en page graphique et les scripts de rendering
  • les données XML remplissent le formulaire
  • le schéma XSD assure la liaison entre les données XML et les champs de la template Designer.

La valeur ajoutée LCDS

Quel intérêt d’utiliser LCDS pour générer du PDF par rapport aux API Flex/Java existantes (Itext, AlivePDF) ?

L’intérêt est multiple :

  • L’éditeur WYSIWYG Livecycle Designer
    L’environnement Livecycle Designer permet de personnaliser fortement le look final de votre PDF. Les documents générés sont largement supérieurs aux PDF générés avec des APIs tierces, en particulier grâce aux nombreux contrôles présents dans la toolbox (champs textes, tableaux, form fragments …) et un contrôle poussé sur la mise en page et la disposition des composants.
    Même si, sachez le, une bonne maitrise du WYSIWYG sera nécessaire pour affûter son gabarit et régler les petits détails graphiques. La documentation Livecycle Designer (de bonne facture) sera votre allié indispensable pour maitriser un outil riche mais parfois peu intuitif.
    Pour finir, rien ne vous empêche de créer votre gabarit à partir d’un PDF existant (fourni par votre client par ex) pour le rendre dynamique et de s’en servir comme modèle. Dans ce cas le gain de temps est encore plus conséquent.

Vous trouverez plus d’informations sur Livecycle Designer ici : http://www.adobe.com/fr/products/livecycle/designer/

  • Intégration à Flex
    Du point de vue du développement Flex/Java, la génération par LCDS représente un gain de productivité certain. D’abord car la charge de travail peut plus facilement être répartie entre plusieurs ressources (un designer pour la template, un codeur pour le code Flex/Java). Et d’autre part grâce au socle LCDS, qui nous laisse la possibilité de fournir le flux de données en XML E4X, soit directement à partir du client Flex !
    Par conséquent, il n’est plus nécessaire de générer le contenu XML server-side …
    C’est un gain de temps non négligeable … dans le cas, bien sûr, ou votre modèle AS3 est assez riche pour alimenter lui même la template.
    Dernier point intéressant: la possibilité de mapper des images provenant du Flex à des contrôles images dans votre template (Exemple : générer un snapshot d’un contrôle charting Flex dans son PDF).

Tutorial

Prenons l’exemple d’une génération de fiche produit PDF pour un magasin en ligne.
La template Livecycle Designer ‘TemplateProduit.pdf’, embarque un schéma Xsd (produit.xsd) représentant les données du produit.

le schéma produit.xsd

<xs:element name="mainProduct" type="ProductVO"></xs:element>
<xs:complexType name="ProductVO">
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="isActive" type="xs:boolean" />
</xs:sequence>
</xs:complexType>

La classe Flex ProduitVO.as contient toutes les informations du produit, et sa méthode toXml() convertit son contenu en E4X (en suivant la structure de produit.xsd). Soit :

var myProduct:ProductVO = new ProductVO(); // remplissage du produit ...
myProduct.name = "produit1";
myProduct.isActive = true;
service.generateProductPDF(myProduct.toXML());

La partie serveur est un jeu d’enfant. Le code de génération prend 10 lignes java :

public void generateProductPDF (org.w3c.dom.Document dataset) {
 // todo call the xdp service
String templatePath = "C:TemplateProduit.pdf";
XFAHelper helper = new XFAHelper();
try { helper.open(templatePath);
helper.importDataset(dataset);
helper.save("C:output.pdf");
} catch (Exception e)
{
e.printStackTrace(); }\\ }

Articles relatifs

  • LiveCycle DataServices 2.6beta et autres nouveautés (0)
  • Kap Lab kick off ! (2)
  • Intégrer les applications Flex RIA aux services de l’entreprise, que choisir : LiveCycle DataServices (LCDS) ou BlazeDS ? (1)
  • Flex Data Service (FDS) : RPC et Messaging pour Flex 2 (14)
  • Digest estival de news Adobe (1)
Catégories: Notes Techniques
Tags: fds, Flex, LCDS, livecycle, pdf

Un commentaire sur “Génération PDF avec Livecycle Data Services”

  1. Demha dit :
    11 septembre 2009 à 12:43

    Hello,

    Tous n’est malheureusement pas si simple. Si dans le principe c’est effectivement très simple, il reste des incohérences entre le monde flex et PDF. Un exemple simple est le richtexteditor qui permet de stocker les données de facon formater. Il aurait était judicieux que le format en sortie de ce richetexteditor soit compatible avec le richtext du pdf.
    De meme a l’interieur du PDF, on peut programmer avec un language propriétaire ou javascript, mais pas d’actionscript, ca aurait ete trop simple.
    Enfin, l’editeur wisiwig, si il a le mérite d’exister est a peine plus ergonomique que Itext…
    Dommage que Adobe ne prenne pas plus à coeur l’intégration de ces différente solutions.

Laisser une réponse

Cliquer ici pour annuler la réponse.

Article précédent
Article suivant
 
Haut de page

Copyright © 2009 Kap IT - Blog RIA - Blog Web2Entreprise - Kap Lab

Motorisé par Wordpress - Thème avec YAML par Kap IT