Flex parle au PDF dans AIR

3 11 2007

air rune

[EDIT] Le projet a été mis à jour pour fonctionner avec AIR 1.0. Cliquez ici.

Lors d’une de mes sessions à MAX, j’ai présenté un exemple d’application AIR (voir le film) où la partie Flex envoie des messages à un document PDF. J’ai ressenti un réel engouement suite à cette démonstration, et de nombreuses questions ont été posées sur ce mécanisme. Je viens de revoir un peu mon code pour simplifier au maximum les scripts et partager avec vous un exemple et le code source.

Voici les liens pour tester l’application:

  • Pour tester l’application AIR, cliquez-ici.
  • Pour récupérer les sources (projet AIR pour Flex Builder 3beta2): cliquez-ici.

Une application Flash peut communiquer côté client avec un document PDF en passant par un bridge JavaScript. Pour bien comprendre le mécanisme, voici comment procéder:

  1. Dans la partie Flex, je charge une page HTML DocRight.htm
  2. Une fois la page chargée, l’événement complete (fin du chargement du HTML) lance la fonction AS3 loadPdf
  3. Flex appelle la fonction JavaScript DoLoadDoc de la page HTML
  4. Cette fonction JavaScript charge le document PDF BrwserToAcroTest.pdf dans un DIV qui s’appelle PDFArea
  5. Le document PDF contient aussi des fonctions JavaScript (et oui, il y a du JavaScript dans des PDF) qui initialise une communication par messaging
  6. La partie Flex peut ensuite appeler la fonction SendMessage du JavaScript HTML, qui envoie un message au PDF.
  7. Le JavaScript PDF reçoit le message et met à jour le textField qui se nomme Status.

C’est un peu tiré par les cheveux mais ça fonctionne pas mal🙂 Par contre, je ne sais pas si c’est documenté. Je suis parti de plusieurs exemples pour réaliser l’application. Si quelqu’un a plus de doc, je suis intéressé. On peut envisager le sens inverse (du PDF vers Flex). Si ça vous intéresse, je peux me pencher dessus.


Actions

Information

8 responses

8 11 2007
Alex

Salut Michael,

je suis tout à fait preneur de l’inverse : PDF vers Flex, par exemple avec un clic sur un bouton, ou le remplissage d’un champ texte.

Ce serait génial !

a++

Alex

14 12 2007
zenzo

Bonjour,
comment corriger cette erreur s’il vous plaît car cet exemeple a l’air très intérèssant.Merci d’avance
cordialement.

———erreur ————-
TypeError: Value undefined (result of expression PDFObject.postMessage) is not object.
———————-

14 02 2008
embalmer

Bonjour,

Avant tout merci pour cette source, intégrer du PDF dans AIR promet d’être fort intéressant pour créer des application polyvalente.
Par ailleurs je suis fortement intéressé par un exemple de communnication dans le sens inverse (PDF > Flex) car je ne trouve aucune infos là dessus à l’heure actuelle.
cordialement.

14 02 2008
michael chaize

OK je vais me pencher sur le sujet.

4 05 2008
Bruno

Bonjour,

J’ai installés les sources mais j’ai un petit problème l’apllication ne fonction pas:
erreur 1119 : accés à la propriété javaScriptWindow peut-être non définie, via la référence de e type static.mx.controls:HTML.

que dois-je faire pour que l’application fonctionne?

Merçi

4 05 2008
michael chaize

J’avais codé ça avec une beta de AIR, c’est peut être du à ça. Il faut aussi installé obligatoirement au moins un Adobe Reader 8.1. Est-ce la cas ? Est-ce que le PDF s’affiche bien ?

10 05 2008
michael chaize

En effet il y a eu quelques changements dans le SDK par rapport à la beta3. Je suis en train de créer une nouvelle version pour AIR 1.0…

10 05 2008
michael chaize

C’est bon… tout fonctionne. J’en ai profité pour rajouter le dialogue dans l’autre sens: du PDF vers AIR… Je poste l’appli et les sources ce week-end le temps de déposer les fichiers et d’enregistrer une vidéo.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s




%d blogueurs aiment cette page :