O JavaScript em uma página HTML pode enviar uma mensagem para o JavaScript no conteúdo em PDF, chamando o método
postMessage()
do objeto DOM representando o conteúdo em PDF. Por exemplo, considere o seguinte conteúdo em PDF incorporado:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
o código JavaScript seguinte, no conteúdo HTML contido envia uma mensagem para o JavaScript no arquivo em PDF:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
O arquivo em PDF pode incluir JavaScript para receber essa mensagem. Você pode adicionar o código JavaScript a arquivos em PDF em alguns contextos, incluindo os contextos em nível de documento, pasta, página, campo e lote. Apenas o contexto em nível de documento, que define scripts que são avaliados quando o documento em PDF é aberto, é discutido aqui.
Um arquivo em PDF pode adicionar uma propriedade
messageHandler
ao objeto
hostContainer
. A propriedade
messageHandler
é um objeto que define funções do manipulador para responder a mensagens. Por exemplo, o código seguinte define a função para tratar mensagens recebidas pelo arquivo em PDF a partir do contêiner host (que é o conteúdo HTML incorporando o arquivo em PDF):
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
O código JavaScript na página HTML pode chamar o método
postMessage()
do objeto PDF contido na página. Chamar esse método envia uma mensagem (
"Hello from HTML"
) para o JavaScript em nível de documento no arquivo em 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>
Para obter um exemplo mais avançado e mais informações sobre como utilizar o Acrobat 8 para adicionar JavaScript a um arquivo PDF, consulte
Cross-scripting de conteúdo PDF no Adobe AIR
.