jPDFViewer Developer Guide
Inhalt
Einführung
Erste Schritte
Ein Dokument öffnen
Die Toolbar anpassen
Mit Formularfeldern arbeiten
Zusätzliche Funktionen
Verteilung und JAR-Dateien
Javadoc API
Source Code Samples
Einführung
jPDFViewer ist eine Java-Bean, die man in Java-Anwendungen einbetten kann, um PDF-Inhalte für Benutzer bereitzustellen, ohne weitere Programme von Drittherstellern oder Treiber installieren zu müssen. jPDFViewer integriert sich nahtlos in Ihre Anwendung und liefert die meisten Funktionen, die beste Performance und die höchste Zuverlässigkeit aller Java-PDF-Anzeigeprogramme.
Wenn Sie jPDFViewer verwenden, um Dokumente anzuzeigen, hat Ihre Anwendung eine bessere Kontrolle über Ihre PDF-Inhalte. Zum Beispiel kann der PDF-Inhalt zur Laufzeit erzeugt und unmittelbar in einem Anzeigeprogramm über eine URL oder einen Input-Stream übergeben werden, ohne dass temporäre Dateien auf dem lokalen Rechner benötigt werden. Dies kann sinnvoll sein, wenn Sie verhindern wollen, dass Ihre Benutzer lokale Kopien der Dateien anlegen können. Zusätzlich bekommen Sie mittels jPDFViewer eine bessere Kontrolle über die Navigations-Toolbar und ihre Funktionen wie das Drucken.
Erste Schritte
jPDFViewer stellt eine Standard-Java-Bean bereit, die man zu jedem GUI-Container hinzufügen kann, die Bean-Klasse ist com.qoppa.pdfViewer.PDFViewerBean. Die Bean kann zu einem Container entweder durch ein Programm oder durch Einsatz eines Standard-GUI-Editors innerhalb Ihrer Entwicklungsumgebung hinzugefügt werden. Sobald die Bean hinzugefügt wurde, kann Ihre Anwendung damit beginnen PDF-Dokumente anzuzeigen; entweder durch Laden von PDF-Dokumenten per Programm basierend auf eigener Anwendungslogik oder indem Benutzer ihre eigenen PDF-Dokumente über die Öffnen-Schaltfläche der Toolbar öffnen.
Die Host-Anwendung kann auch die Toolbar durch Aufruf der getToolbar()-Methode anpassen und Schaltflächen entfernen oder hinzufügen, die Button-Handler überschreiben oder sogar die gesamte Toolbar verdecken. Action-Handler auf den Toolbar-Schaltflächen können überschrieben werden, um kundenspezifischen Code für die Umsetzung der Funktionen bereitzustellen. Zum Beispiel kann Ihre Anwendung die open-Funktion überschreiben, um den Benutzern eine eingeschränkte Liste von PDF-Dokumenten anzuzeigen, die man öffnen kann.
Ein Dokument öffnen
Laden und Anzeigen eines Dokuments per Programm ist mit Einsatz von jPDFViewer sehr einfach möglich. Sobald eine PDFViewer-Bean einem Container hinzugefügt wurde, braucht die Host-Anwendung nur eine der loadPDF-Methoden in PDFViewerBean aufzurufen und die Bibliothek wird die erste Seite des Dokuments laden und anzeigen. Den drei Versionen der loadPDF-Methode kann als Parameter ein Datei-Name, eine URL oder ein InputStream übergeben werden
PDFViewerBean bean = getViewerBean ();
bean.loadPDF (“c:\\test.pdf”);
Die Toolbar anpassen
Die Toolbar in jPDFViewer kann angezeigt oder verdeckt werden, abhängig von den Anforderungen der Host-Anwendung. Zusätzlich kann auf alle Schaltflächen in der Toolbar zugegriffen werden, damit sie aktiviert/deaktiviert oder verdeckt werden können. Die PDFViewerBean-Klasse verfügt über eine Methode, getToolbar, die eine Referenz zur Toolbar zurück liefert, ein PDFToolbar-Objekt. PDFToolbar erweitert JToolBar und stellt Methoden bereit, um auf jede Schaltfläche einzeln zugreifen zu können. Bitte sehen Sie für nähere Informationen im API nach.
Das folgende Beispiel geht davon aus, dass viewerBean eine Referenz auf eine PDFViewerBean ist:
Um die Toolbar zu verdecken:
viewerBean.getToolbar().setVisible (false);
Um die Öffnen-Schaltfläche zu verdecken:
viewerBean.getToolbar().getjbOpen ().setVisible (false);
Um die Druck-Schaltfläche zu deaktivieren:
viewerBean.getToolbar().getjbPrint().setEnabled (false);
Mit Formularfeldern arbeiten
Felder in einer PDF-Datei sind in einer von Adobe so genannten AcroForm enthalten. jPDFViewer stellt einen Zugriff auf ein AcroForm-Objekt ausgehend von der PDFViewerBean-Klasse bereit; durch dieses Objekt kann die Host-Anwendung die in einem Dokument enthaltenen Felder lesen und ihre Daten lesen oder setzen.
Um eine Referenz auf die AcroForm zu erhalten, muss die Host-Anwendung PDFViewerBean.getAcroForm aufrufen. Diese Methode liefert einen Objekttyp com.qoppa.pdf.AcroForm zurück. Die Host-Anwendung kann dann dieses Objekt benutzen, um eine Liste der Felder des Dokuments zu erhalten und um einzelne Felder über den Namen zu lesen. Die Feld-Objekte ihrerseits haben Methoden, um ihren aktuellen Wert zu lesen oder zu setzen.
Zusätzliche Funktionen
jPDFViewer stellt eine Anzahl zusätzlicher Funktionen breit, um PDF-Dokumente zu bearbeiten und zu ändern. Die Bibliothek stellt diese Funktionen bereit, indem sie Zugriffe auf eine Interface-Klasse einrichtet, die das zugrunde liegende PDF-Dokument repräsentiert. Die PDFViewerBean.getDocument-Methode liefert ein Objekt zurück, das com.qoppa.pdf.dom.IPDFDocument implementiert. Einige der Informationen und Funktionen dieses Objekts sind:
- Informationen über das PDF-Dokument wie Autor, Erstellungsdatum und weitere – IPDFDocument.getDocumentInfo()
- Das PDF-Dokument per Programm drucken, Aufruf von – IPDFDocument.print()
- Den Lesezeichen-Baum (Inhaltsverzeichnis) bestimmen – IPDFDocument.getRootBookmark()
- Informationen über jede Seite bestimmen – IPDFDocument.getIPage(). Diese Methode liefert ein Objekt zurück, das IPDFPage implementiert
- Von jeder Seite ihre Größe, Masken-Rahmen, Endformat-Rahmen und Seitenformat inklusive Beschnitt bestimmen – IPDFPage.getMediaBox(), IPDFPage.getCropBox(), IPDFPage.getTrimBox(), IPDFPage.getBleedBox()
- Jede Seite als Bild exportieren – IPDFPage.getImage()
- Eine Liste der Anmerkungen einer Seite bestimmen – IPDFPage.getAnnotations()
Verteilung und JAR-Dateien
jPDFViewer wird vollständig in einer einzigen JAR-Datei ausgeliefert; jPDFViewer.jar, diese wird mit dem Evaluationsbeispiel installiert. Wenn eine Anwendung, die jPDFViewer enthält, verteilt werden soll, muss, damit die Anwendung läuft, die jPDFViewer.jar-Datei zusammen mit ihr verteilt und in den Classpath aufgenommen werden.
Um JPEG 2000-Bilder zu unterstützen, verwendet jPDFViewer die Java Advanced Imaging (JAI)-Klassen. Da dieses API nur für Java 1.4.2 verfügbar ist, benötigt jPDFViewer Java 1.4.2 oder höher, falls man mit PDF-Dokumenten arbeitet, die JPEG2000-Bilder enthalten. Das API kann getrennt auf der Zielmaschine installiert werden oder die jai_imageio.jar-Datei (in der Installation des Beispielprogramms enthalten) kann zusammen mit Ihrer Anwendung verteilt und in den Classpath aufgenommen werden.