JavaScript in een HTML-pagina kan een bericht naar JavaScript in PDF-inhoud versturen door de methode
postMessage()
op te roepen van het DOM-object dat de PDF-inhoud voorstelt. U hebt bijvoorbeeld de volgende ingesloten PDF-inhoud:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
De volgende JavaScript-code in de bevattende HTML-inhoud verstuurt een bericht naar de JavaScript-code in het PDF-bestand:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
Het PDF-bestand kan JavaScript bevatten om dit bericht te ontvangen. U kunt in bepaalde contexten JavaScript-code aan PDF-bestanden toevoegen, zoals context op document-, map-, pagina-, veld- en batchniveau. Alleen context op documentniveau, die scripts definieert die worden geëvalueerd wanneer het PDF-document wordt geopend, wordt hier beschreven.
Een PDF-bestand kan de eigenschap
messageHandler
toevoegen aan het
hostContainer
-object. De eigenschap
messageHandler
is een object dat de afhandelingsfuncties definieert waarmee op berichten wordt gereageerd. Voorbeeld: de volgende code definieert de functie om berichten af te handelen die het PDF-bestand ontvangt van de hostcontainer (dit is de HTML-inhoud die is ingesloten in het PDF-bestand):
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
JavaScript-code in de HTML-pagina kan de methode
postMessage()
oproepen van het PDF-object dat zich in de pagina bevindt. Door het oproepen van deze methode wordt het bericht
"Hello from HTML"
naar de JavaScript-code op documentniveau in het PDF-bestand verzonden:
<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>
Zie
Cross-scripting van PDF-inhoud in Adobe AIR
voor een meer geavanceerd voorbeeld en voor informatie over het gebruik van Acrobat 8 om JavaScript aan een PDF-bestand toe te voegen.