JavaScript dans une page HTML peut envoyer un message à JavaScript dans un contenu PDF par un appel à la méthode
postMessage()
de l’objet DOM représentant le contenu PDF. Par exemple, examinez le contenu PDF intégré ci-dessous :
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
Le code JavaScript suivant dans le contenu HTML envoie un message au JavaScript du fichier PDF :
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
Le fichier PDF peut contenir JavaScript pour recevoir ce message. Vous pouvez ajouter du code JavaScript aux fichiers PDF dans certains contextes au niveau du document, du dossier, de la page, du champ ou du lot. Nous n’aborderons ici que le contexte au niveau du document, celui qui définit les scripts qui sont évalués lorsque le document PDF s’ouvre.
Un fichier PDF peut ajouter une propriété
messageHandler
à l’objet
hostContainer
. La propriété
messageHandler
est un objet qui définit les fonctions du gestionnaire pour répondre aux messages. Par exemple, le code ci-dessous définit la fonction appelée à répondre aux messages provenant du fichier PDF du conteneur hôte. Celui-ci constitue le contenu HTML qui a intégré le fichier PDF :
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
Le code JavaScript de la page HTML peut appeler la méthode
postMessage()
de l’objet PDF contenu dans la page. L’appel de cette méthode envoie un message
"Hello from HTML"
au JavaScript, au niveau du document, dans le fichier PDF :
<html>
<head>
<title>PDF Test</title>
<script>
function init()
{
pdfObject = document.getElementById("PDFObj");
try {
pdfObject.postMessage(["alert", "Hello from HTML"]);
}
catch (e)
{
alert( "Error: \n name = " + e.name + "\n message = " + e.message );
}
}
</script>
</head>
<body onload='init()'>
<object
id="PDFObj"
data="test.pdf"
type="application/pdf"
width="100%" height="100%"/>
</body>
</html>
Pour consulter un exemple plus complexe, ainsi que des informations sur l’utilisation d’Acrobat 8 pour ajouter du code JavaScript à un fichier PDF, voir
Programmation croisée du contenu PDF dans Adobe AIR
.