Adobe Air (wiwobooks.com Release)
höher installiert ist. Auch die im Falle von Mac OS X vorhandene grundsätzliche, standardmäßige Unterstützung von PDF reicht hierfür nicht aus.
16.1 Einschränkungen
Obwohl Adobe PDF als eine von drei Kerntechnologien bezeichnet, ist die Anzeige von PDF-Inhalten in AIR-Darstellungen nur mit folgenden Einschränkungen möglich:
PDF-Inhalt ist nur sichtbar, wenn sich das native Fenster der Anwendung weder im Vollbildmodus befindet (nicht zu verwechseln mit dem Anzeigestatus maximiert) noch über einen transparenten Hintergrund verfügt und wenn der Skaliermodus der Stage-Instanz des nativen Fensters auf StageScaleMode. NO_SCALE eingestellt ist.
PDF-Inhalt ist nur sichtbar, wenn die HTMLLoader -Instanz, die das PDF-Dokument enthält, nicht durch Filter oder in Alpha-Wert, Skalierung oder Rotation verändert ist.
Links im PDF-Dokument zu externen URLs ersetzen das PDF-Dokument mit dem Inhalt des Links.
Unabhängig von der innerhalb des nativen Fensters eingestellten Stapelreihenfolge der visuellen Elemente wird PDF-Inhalt immer ganz oben angezeigt. Die Kommentarfunktionalität ist innerhalb von AIR nicht anwendbar.
16.2 PDF-Voraussetzungen ermitteln
Bevor Sie in einer AIR-Anwendung PDF-Dateien anzeigen können, müssen Sie zuerst feststellen, ob das System des Benutzers überhaupt die geeigneten Voraussetzungen besitzt.
Wie Sie bereits in Abschnitt 7.3 erfahren haben, können Sie in AIR Informationen über das System des Benutzers abrufen. Da PDF jedoch in AIR immer innerhalb einer HTMLLoader -Instanz dargestellt wird (man erinnere sich: Anzeige nur mithilfe WebKit), sind die entsprechenden Informationen in der Klasseneigenschaft pdfCapability der Klasse HTMLLoader untergebracht. Diese Eigenschaft kann einen der als Konstanten der HTMLPDFCapability -Klasse definierten Werte annehmen, die Sie in Tabelle 16.1 einsehen können.
Konstante
HTMLPDFCapability.STATUS_OK
HTMLPDFCapability.ERROR_ INSTALLED_READER_NOT_FOUND
HTMLPDFCapability.ERROR_ INSTALLED_READER_TOO_OLD
HTMLPDFCapability.ERROR_ PREFERRED_READER_TOO_OLD
Bedeutung
Adobe Reader ab Version 8.1 ist installiert. Es ist kein Adobe Reader installiert.
Adobe Reader bis Version 8.0 ist installiert.
Es ist zwar ein Adobe Reader der Version 8.1 oder später installiert, ein anderer (für die Anzeige von PDF-Dokumenten eingestellter) Adobe Reader ist jedoch Version 8.0 oder früher.
Tabelle 16.1 HTMLPDFCapability-Konstanten
Lösungsweg
1. Prüfen der Klasseneigenschaft pdfCapability der Klasse HTMLLoader
2. Weitere Schritte zum Laden des PDF-Dokuments ausführen, falls HTMLPDFCapability.STATUS_OK
So geht es
Im nachfolgenden Quelltextfragment wird die PDF-Unterstützung des Systems überprüft:
if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) { // PDF-Inhalt laden
}
else {
trace("Ihr System unterstützt derzeit nicht die Anzeige von PDF.");
}
16.3 PDF-Inhalt anzeigen
Um nach erfolgreicher Prüfung der Voraussetzungen ein PDF-Dokument anzuzeigen, erstellen Sie eine HTMLLoader -Instanz, der Sie die gewünschte Größe zuweisen und mit der Sie die gewünschte PDF-Datei, angegeben in Form einer URLRequest -Instanz, laden.
Lösungsweg
1. Erstellen einer HTMLLoader -Instanz
2. Erstellen einer URLRequest -Instanz für das zu ladende PDF-Dokument
3. Aufruf der Instanzmethode load() der HTMLLoader -Instanz mit dem URLRequest als Parameter
So geht es
Das folgende vereinfachte Beispiel lädt nach Überprüfung der PDF-Voraussetzungen das PDF-Dokument myDoc.pdf und zeigt dieses an:
package {
import flash.display.Sprite;
import flash.html.HTMLLoader;
import flash.html.HTMLPDFCapability;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class showPDFExample extends Sprite {
private var pdfContainer:HTMLLoader;
public function showPDFExample() { stage.nativeWindow.activate();
if(HTMLLoader.pdfCapability == HTMLPDFCapability.
STATUS_OK) {
pdfContainer = new HTMLLoader();
stage.addChild(pdfContainer);
pdfContainer.width = 800;
pdfContainer.height = 500;
var docRequest:URLRequest =
new URLRequest("docs/myDoc.pdf");
pdfContainer.load(docRequest);
}
else {
var label:TextField = new TextField();
label.autoSize = TextFieldAutoSize.LEFT;
label.multiline = true;
label.text = "auf diesem System können keine
PDF-Inhalte\nmit dieser Anwendung angezeigt werden."; stage.addChild(label);
}
}
}
}
Auch wenn AIR-Anwendungen Desktopanwendungen sind, so wird sich kaum eine AIR-Anwendung auf das Leben auf dem
Weitere Kostenlose Bücher