HTML sayfasındaki JavaScript, PDF içeriğini temsil eden DOM nesnesinin
postMessage()
yöntemini çağırarak PDF içeriğindeki JavaScript'e mesaj gönderebilir. Örneğin, aşağıdaki gömülü PDF içeriğini dikkate alın:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
Mevcut HTML içeriğinde aşağıdaki JavaScript kodu, PDF dosyasındaki JavaScript'e bir mesaj gönderir:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
PDF dosyası, bu mesajın alınması için JavaScript'i dahil edebilir. Belge, klasör, sayfa, alan düzeyi ve toplu düzey bağlamları dahil bazı bağlamlardaki PDF dosyalarına JavaScript kodu ekleyebilirsiniz. Burada yalnızca, PDF dokümanı açıldığında değerlendirilen komut dosyalarını tanımlayan belge düzeyi bağlamı tartışılır.
PDF dosyası
hostContainer
nesnesine
messageHandler
özelliğini ekleyebilir.
messageHandler
özelliği, mesajları yanıtlamak için işleyici işlevlerini tanımlayan bir nesnedir. Örneğin aşağıdaki kod, PDF dosyası tarafından ana bilgisayar kabından (PDF dosyasını içeren HTML içeriği) alınan mesajları işlemeye yönelik işlevi tanımlar:
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
HTML sayfasındaki JavaScript kodu, sayfada yer alan PDF nesnesinin
postMessage()
yöntemini çağırabilir. Bu yöntemin çağrılması, PDF dosyasındaki belge düzeyinde JavaScript'e bir mesaj (
"Hello from HTML"
) gönderir:
<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>
Daha gelişmiş bir örnek için ve bir PDF dosyasına JavaScript eklemek üzere Acrobat 8 kullanımıyla ilgili bilgi almak için bkz.
Adobe AIR uygulamasında PDF içeriğinde çapraz komut dosyası oluşturma
.