Skrypt JavaScript na stronie HTML może wysłać komunikat do skryptu JavaScript w treści PDF, wywołując metodę
postMessage()
obiektu DOM reprezentującego treść PDF. Rozważmy na przykład następującą osadzoną treść PDF:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
Poniższy kod JavaScript w zawierającej PDF treści HTML wysyła komunikat do kodu JavaScript w pliku PDF:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
Plik PDF może zawierać kod JavaScript odbierający komunikat. Kod JavaScript można dodawać do plików PDF w różnych kontekstach, w szczególności w kontekście dokumentu, folderu, strony, pola i partii wsadowej. Tutaj omawiamy wyłącznie kontekst dokumentu, w którym zdefiniowane są skrypty wykonywane podczas otwierania dokumentu PDF.
Plik PDF może dodać właściwość
messageHandler
do obiektu
hostContainer
. Właściwość
messageHandler
jest obiektem definiującym funkcje obsługi reagujące na komunikaty. Na przykład w poniższym kodzie zdefiniowano funkcję obsługi komunikatów odbieranych przez plik PDF z jego kontenera (czyli z treści HTML, w której jest osadzony plik PDF):
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
Kod JavaScript na stronie HTML może wywołać metodę
postMessage()
obiektu PDF zawartego na stronie. Wywołanie tej metody powoduje wysłanie komunikatu (
"Hello from HTML"
) do kodu JavaScript na poziomie dokumentu w pliku 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>
Bardziej zaawansowany przykład oraz informacje na temat użycia programu Acrobat 8 w celu dodania kodu JavaScript do pliku PDF zawiera dokument
Wywoływanie skryptów w treści PDF ze środowiska Adobe AIR
.