Inclusão de conteúdo em PDF no AIRAdobe AIR 1.0 e posterior Os aplicativos em execução no Adobe® AIR® podem produzir não só conteúdo SWF e HTML, mas também em PDF. Aplicativos AIR processam aplicativos em PDF usando a classe HTMLLoader, o mecanismo WebKit e o plug-in para navegador Adobe® Reader®. Em um aplicativo AIR, o conteúdo em PDF pode alongar-se pela atura e largura inteiras de seu aplicativo ou, como alternativa, como uma parte da interface. O plug-in de navegador do Adobe Reader controla a exibição de arquivos PDF em um aplicativo AIR. as modificações na interface de barra de ferramentas do Reader (como controles de posição, ancoragem e visibilidade) persistem na visualização subsequente de arquivos PDF nos aplicativos AIR e no navegador. Importante: Para processar conteúdo em PDF no AIR, o usuário deve ter o Adobe Reader ou Adobe® Acrobat® versão 8.1 ou posterior instalada.
Detecção de recurso de PDFSe o usuário não tiver o Adobe Reader ou do Adobe Acrobat 8.1 ou posterior, o conteúdo PDF não será exibido no aplicativo AIR. Para detectar se o usuário pode processar conteúdo em PDF, verifique primeiramente a propriedade HTMLLoader.pdfCapability. Essa propriedade está definida como uma das seguintes constantes da classe HTMLPDFCapability:
No Windows, se o Adobe Acrobat ou o Acrobat Reader versão 7.x ou posterior estiver em execução no sistema do usuário, essa versão será usada, mesmo se houver instalada uma versão posterior que ofereça suporte a PDF carregado. Nesse caso, se o valor da propriedade pdfCapability for HTMLPDFCapability.STATUS_OK, quando um aplicativo AIR tentar carregar o conteúdo em PDF, a versão antiga do Acrobat ou do Reader exibirá um alerta (e nenhuma exceção será lançada no aplicativo AIR). Se isso for uma possibilidade para os usuários finais, considere fornecer a eles instruções sobre como fechar o Acrobat enquanto o aplicativo é executado. Pode ser conveniente exibir essas instruções se o conteúdo em PDF não for carregado em um intervalo de tempo aceitável. No Linux, o AIR procura o Adobe Reader no CAMINHO exportado pelo usuário (se ele contiver o comando acroread) e no diretório /opt/Adobe/Reader. O código a seguir detecta se um usuário pode exibir conteúdo PDF em um aplicativo AIR. Se o usuário não puder exibir um PDF, o código rastreará o código de erro correspondente ao objeto de erro HTMLPDFCapability: if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) { trace("PDF content can be displayed"); } else { trace("PDF cannot be displayed. Error code:", HTMLLoader.pdfCapability); } Carregamento de conteúdo em PDFVocê pode adicionar um PDF a um aplicativo AIR criando uma ocorrência HTMLLoader, definindo as dimensões e carregando o caminho de um PDF. O exemplo a seguir carrega um PDF de um site externo. Substitua a URLRequest com o caminho para um PDF externo disponível. var request:URLRequest = new URLRequest("http://www.example.com/test.pdf"); pdf = new HTMLLoader(); pdf.height = 800; pdf.width = 600; pdf.load(request); container.addChild(pdf); Você também pode carregar conteúdo de URLs de arquivos e esquemas de URL específicos do AIR, como app e app-storage. Por exemplo, o código seguinte carrega o arquivo test.pdf no subdiretório PDFs do diretório do aplicativo: app:/js_api_reference.pdf Para obter mais informações sobre esquemas de URL do AIR, consulte Esquemas de URI. Gravando em script o conteúdo em PDFVocê pode usar o JavaScript para controlar o conteúdo em PDF, do mesmo modo que em um página da Web no navegador. As extensões JavaScript para o Acrobat oferecem alguns recursos, entre eles:
Detalhes completos sobre extensões JavaScript para o Adobe Acrobat são fornecidos na Conexão de desenvolvedores do Adobe Acrobat, em http://www.adobe.com/devnet/acrobat/javascript.html. Noções básicas de comunicação HTML-PDFO 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 incluirJavaScript 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. Gravação em script de conteúdo em PDF do ActionScriptO código do ActionScript (no conteúdo SWF) não pode se comunicar diretamente com o JavaScript no conteúdo em PDF. Entretanto, o ActionScript pode se comunicar com o JavaScript na página HTML carregada em um objeto HTMLLoader que carrega conteúdo em PDF, e o código JavaScript pode se comunicar com o JavaScript no arquivo em PDF carregado. Para obter mais informações, consulte Programação de HTML e JavaScript no AIR. Limitações conhecidas do conteúdo em PDF no AIRO conteúdo em PDF no Adobe AIR tem as seguintes limitações:
|
![]() |