PDFs mit Flash und Adobe AIR laden

Adobe AIR PDFs laden

AIR-Applikationen können nicht nur SWF- und HTML-Dateien anzeigen, sondern auch Dokumente im PDF-Format darstellen. Wie dies genau geht und was die Vorraussetzung sind, zeigt Teil 12 der Reihe zu „Adobe AIR 1.0“ und Flash CS3.

Für das Rendern und Anzeigen der PDFs wird auf den Adobe Reader (oder Adobe Acrobat) zurückgegriffen, weshalb dieser beim Nutzer in der Version 8.1 oder höher beim Nutzer installiert sein muss. Um dies zu prüfen, kann man die Eigenschaft HTMLLoader.pdfCapability abfragen, die entsprechende Werte zurückliefert. Diese können sein:

HTMLPDFCapability.STATUS_OK
A sufficient version (8.1 or greater) of Adobe Reader is detected and PDF content can be loaded into an HTMLLoader object

HTMLPDFCapability.ERROR_INSTALLED_READER_NOT_FOUND
No version of Adobe Reader is detected. An HTMLLoader object cannot display PDF content.

HTMLPDFCapability.ERROR_INSTALLED_READER_TOO_OLD
Adobe Reader has been detected, but the version is too old. An HTMLConrol object cannot display PDF content.

Um das PDF zu laden, nutzt man die HTMLLoader-Klasse, die auch schon im Beispiel „HTML-Seiten in AIR anzeigen“ zum Einsatz kam.

Der ActionScript-Code der Anwendung lautet:

[as]
import flash.html.*;
import flash.events.*;

function checkPDFCapability():void {

if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) {
trace(„PDFs können dargestellt werden.“);
} else
{
trace(„PDFs können nicht dargestellt werden. Adobe Reader 8.1 oder hoeher benötigt. Error code:“, HTMLLoader.pdfCapability);
}
}

// Überprüfen, ob PDFs angezeigt werden können
checkPDFCapability();

// neuer HTMLLoader
var myPDF:HTMLLoader = new HTMLLoader();

// URL des PDFs
var request:URLRequest = new URLRequest(„http://www.adobe.com/devnet/pdf/pdfs/ISOFormatting_070604C.pdf“);

// Größe und Position festlegen
myPDF.width = 640;
myPDF.height = 480;
myPDF.x = 100;
myPDF.y = 50;

// laden
myPDF.load(request);

// event listener
myPDF.addEventListener(Event.COMPLETE, onComplete);

function onComplete(evt:Event) {

// der Bühne hinzufügen
this.addChild(myPDF);

// Preloader ausblenden
preloader.visible = false;
}
[/as]

Download: Quelldatei (.fla)
Link: Rendering PDF content in AIR applications

5 Gedanken zu „PDFs mit Flash und Adobe AIR laden“

  1. PS: Auf Mac OS X 10.5.2 hatte ich Probleme. Statt des PDFs wurde nur ein graues Rechteck angezeigt. Keine Ahnung, woran das liegt …

  2. Hallo,
    ich hatte dasselbe Problem auf dem Mac. Lösung war das gnaze ohne myPDF.addEventListener(Event.COMPLETE, onComplete); zu machen, und this.addChild(myPDF); direkt aufzurufen.
    Dann gehts…. irgendwie kommt er nicht mit dem Eventhandler klar.
    Ausserdem sollte das ganze in eine UIComponent gepackt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert