PDF-inhoud toevoegen in AIRAdobe AIR 1.0 of hoger Actieve toepassingen in Adobe® AIR® kunnen niet alleen SWF- en HTML-inhoud, maar ook PDF-inhoud renderen. AIR-toepassingen renderen PDF-inhoud met behulp van de klasse HTMLLoader, de WebKit-engine en de Adobe® Reader® plug-in voor de browser. In een AIR-toepassing kan PDF-inhoud gelden voor de volledige hoogte en breedte van uw toepassing of slechts voor een deel van de interface. Met de Adobe Reader-plug-in voor de browser kunt instellen hoe PDF-bestanden in een AIR-toepassing worden weergegeven. Wijzigingen in de interface van de Reader-werkbalk (zoals in besturingselementen voor positie, ankerpunten en zichtbaarheid) blijven van toepassing als u PDF-bestanden vervolgens weergeeft in zowel AIR-toepassingen als de browser. Belangrijk: Om PDF-inhoud in AIR te renderen, moet Adobe Reader of Adobe® Acrobat® versie 8.1 of hoger op de computer van de gebruiker zijn geïnstalleerd.
PDF-mogelijkheden detecterenAls Adobe Reader of Adobe Acrobat 8.1 of hoger niet op de computer van de gebruiker is geïnstalleerd, wordt PDF-inhoud niet weergegeven in een AIR-toepassing. Om na te gaan of een gebruiker PDF-inhoud kan renderen, moet u eerst de eigenschap HTMLLoader.pdfCapability controleren. Deze eigenschap is ingesteld op een van de volgende constanten uit de klasse HTMLPDFCapability.
Als de gebruiker een Windows-computer heeft waarop Adobe Acrobat of Adobe Reader versie 7.x of hoger wordt uitgevoerd, wordt die versie gebruikt, zelfs als een recentere versie is geïnstalleerd die het laden van PDF-inhoud ondersteunt. Als in dit geval de waarde van de eigenschap pdfCapability is ingesteld op HTMLPDFCapability.STATUS_OK terwijl een AIR-toepassing PDF-inhoud probeert te laden, geeft de oudere versie van Acrobat of Reader een waarschuwing weer (er wordt geen uitzondering gegenereerd in de AIR-toepassing). Als deze situatie zich bij uw eindgebruikers kan voordoen, kunt u instructies opgeven om Acrobat te sluiten terwijl uw toepassing wordt uitgevoerd. U wordt aangeraden deze instructies weer te geven als de PDF-inhoud niet binnen een aanvaardbare tijd wordt geladen. Bij Linux zoekt AIR naar Adobe Reader op het pad (PATH) dat door de gebruiker is geëxporteerd (als het de opdracht acroread bevat) en in de map /opt/Adobe/Reader. Aan de hand van de volgende code kan worden vastgesteld of een gebruiker PDF-inhoud in een AIR-toepassing kan weergeven. Als de gebruiker PDF-inhoud niet kan weergeven, wordt er door de code een foutcode getraceerd die overeenkomt met het HTMLPDFCapability-foutobject: if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) { trace("PDF content can be displayed"); } else { trace("PDF cannot be displayed. Error code:", HTMLLoader.pdfCapability); } PDF-inhoud ladenU kunt een PDF toevoegen aan een AIR-toepassing door een HTMLLoader-instantie te maken, de afmetingen ervan in te stellen en het pad van een PDF te laden. In het volgende voorbeeld ziet u hoe u een PDF vanaf een externe site laadt. Vervang de URLRequest door het pad naar een beschikbare externe PDF. 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); U kunt ook inhoud laden vanaf bestands-URL's en AIR-specifieke URL-schema's, zoals app en app-storage. Voorbeeld: de volgende code laadt het bestand test.pdf naar de PDF-submap van de toepassingsmap: app:/js_api_reference.pdf Zie URI-schema's voor meer informatie over URL-schema's van AIR. Scripting van PDF-inhoudU kunt JavaScript gebruiken om PDF-inhoud te besturen, net zoals in een webpagina in de browser. JavaScript-extensies voor Acrobat bieden onder andere de volgende mogelijkheden:
Meer informatie over JavaScript-extensies voor Adobe Acrobat vindt u in Adobe Acrobat Developer Connection op http://www.adobe.com/devnet/acrobat/javascript.html. Basisinformatie over PDF-communicatie in HTMLJavaScript 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. Scripting van PDF-inhoud vanuit ActionScriptActionScript-code (in SWF-inhoud) kan niet rechtstreeks communiceren met JavaScript in PDF-inhoud. ActionScript kan echter wel communiceren met de JavaScript-code in de HTML-pagina die is geladen in het HTMLLoader-object waarmee de PDF-inhoud wordt geladen, en die JavaScript-code kan communiceren met de JavaScript-code in het geladen PDF-bestand. Zie HTML en JavaScript programmeren in AIR voor meer informatie. Bekende beperkingen voor PDF-inhoud in AIRPDF-inhoud in Adobe AIR is onderworpen aan de volgende beperkingen:
|
![]() |
Juridische kennisgevingen | Online Privacy Policy