Inhalt
Einführung
jPDFSecure ist eine Java-Bibliothek, die sich nahtlos in Ihre Anwendung oder Applet integriert; um Sicherheitseinstellungen Ihrer PDF-Dokumente aktualisieren zu können. jPDFSecure bietet die folgenden Funktionen:
- Verschlüsseln / Entschlüsseln von PDF-Dokumenten
- Berechtigungen setzen / entfernen
- Berechtigung, um in hoher Auflösung zu drucken
- Berechtigung zu drucken
- Berechtigung zu kopieren oder Inhalte zu entnehmen
- Berechtigung Inhalt zu entnehmen für Zugriffe behinderter Benutzer
- Berechtigung zu ändern
- Berechtigung zum Zusammenstellen: Einfügen, Ausrichten, Löschen von Seiten
- Berechtigung um Anmerkungen hinzufügen / zu ändern
- Berechtigung um Formularfelder auszufüllen und zu unterschreiben
- Kennwörter setzen / entfernen
- Kennwort, um PDF-Dokumente zu öffnen
- Master-Kennwort (Berechtigungskennwort), um Berechtigungen zu ändern
Wie alle unsere Bibliotheken baut jPDFSecure auf Qoppas eigenem Format auf und verlangt keine Programme von Drittherstellern oder Treiber.
Erste Schritte
Ausgangspunkt beim Einsatz von jPDFSecure ist com.qoppa.pdfSecure.PDFSecure. Diese Klasse wird gebraucht, um ein PDF-Dokument zu laden und um die Sicherheitseinstellungen eines PDF-Dokuments zu aktualisieren. Die Klasse bietet drei Konstruktoren, um PDF-Dateien aus dem Dateisystem, einer URL oder einem InputStream zu laden. Alle Konstruktoren benötigen einen zusätzlichen Parameter, ein Objekt, das IPasswordHandler implementiert, dieses wird abgefragt, falls die PDF-Datei beim Öffnen ein Kennwort (Öffnen- oder Benutzer-Kennwort genannt) verlangt. Für nicht-verschlüsselte PDF-Dateien kann der zweite Parameter "null" sein:
PDFSecure pdfSecure = new PDFSecure(new URL(http://www.qoppa.com/content.pdf"), null);
Lesen des aktuellen Kennworts / Verschlüsselung-Info
Sobald ein PDFSecure-Objekt angelegt wurde, kann die Host-Anwendung eine einfache Methode aufrufen, um die aktuellen Sicherheitseinstellungen des geladenen PDF-Dokuments zu bestimmen.
// PDF-Dokument ist verschlüsselt
System.out.println(pdfSecure.isEncrypted());
// PDF-Dokument hat ein Öffnen- (oder Benutzer-)Kennwort
// (Kennwort, um das Dokument zu öffnen)
System.out.println(pdfSecure.hasOpenPassword());
// PDF-Dokument hat ein Berechtigungs- (oder Eigentümer)-Kennwort
// (Kennwort, um Berechtigungen zu aktualisieren)
System.out.println(pdfSecure.hasPermissionsPassword());
Lesen der aktuellen Berechtigungen
PDFSecure.getPermissions gibt ein Berechtigungsobjekt zurück. Von diesem Objekt ist es einfach, alle verschiedenen Berechtigungen zu bestimmen.
PDFPermissions perms = pdfSecure.getPermissions();
// Berechtigung, um in hoher Auflösung zu drucken
System.out.println(
perms.isPrintHighResAllowed());
// Berechtigung, um zu drucken
// automatisch eingeschaltet, falls die Berechtigung
// in hoher Auflösung zu drucken, eingerichtet ist
System.out.println(
perms.isPrintAllowed());
// Berechtigung, um Text oder Grafiken zu kopieren
System.out.println(perms.isExtractTextGraphicsAllowed());
// Berechtigung für Behinderte, Text oder Grafiken zu kopieren
// automatisch eingeschaltet, falls die Berechtigung
// Text und Grafiken zu kopieren, eingerichtet ist
System.out.println(perms.isExtractTextGraphicsForAccessibilityAllowed());
// Berechtigung, um das Dokument zu ändern
System.out.println(perms.isChangeDocumentAllowed());
// Berechtigung, um Dokumente zusammenzustellen: einfügen, ausrichten, löschen von Seiten
// automatisch eingeschaltet, falls die Berechtigung
// Dokumente zu ändern, eingerichtet ist
System.out.println(perms.isAssembleDocumentAllowed());
// Berechtigung, um Anmerkungen hinzufügen/zu ändern
// automatisch eingeschaltet, falls die Berechtigung
// Dokumente zu ändern, eingerichtet ist
System.out.println(perms.isModifyAnnotsAllowed());
// Berechtigung, um Formularfelder auszufüllen und zu unterschreiben
// automatisch eingeschaltet, falls die Berechtigung
// Dokumente zu ändern, eingerichtet ist
// auch automatisch eingeschaltet, falls die Berechtigung
// Anmerkungen zu ändern, eingerichtet ist
System.out.println(perms.isFillFormFieldsAllowed());
Verändern der Sicherheitseinstellungen (Kennwörter, Verschlüsselung & Berechtigungen)
PDFSecure.setSecurity ist die aufzurufende Methode, um Sicherheitseinstellungen für ein Dokument zu setzen / zu verändern.
// neue Sicherheitseinstellungen setzen
pdfSecure.setSecurity (newPermPwd, newOpenPwd, permissions, currentPermPwd);
// Speichern eines PDF-Dokuments (outputPDFFile ist ein Java-File-Objekt)
pdfSecure.saveDocument(outputPDFFile.getAbsoluteFileName());
- newPermPwd = neues Berechtigungskennwort des Dokuments. Falls "null", gibt es kein Berechtigungs- (oder Eigentümer-)Kennwort und jeder Benutzer kann die Berechtigungen des Dokuments verändern.
- newOpenPwd = neues Öffnen-Kennwort. Falls "null", muss der Benutzer kein Kennwort eingeben, um das Dokument zu öffnen.
- permissions = ein PDFPermissions-Objekt. Dieses Objekt kann nicht "null" sein.
Um alle Berechtigungen weiterzugeben, kann "new PDFPermissions(true)" benutzt werden.
Um alle Berechtigungen zu entfernen, kann "new PDFPermissions(false)" benutzt werden.
Um nur einige Berechtigungen weiterzugeben
PDFPermissions permissons = new PDFPermissions(false);
permissons.setPrintAllowed(true);
permissons.setAssembleDocumentAllowed(true);
permissons.setFillFormsAllowed(true);
Beachten Sie, dass es einige Hierarchien bei den Berechtigungen gibt:
1. Falls die Berechtigung, in hoher Auflösung zu drucken, eingerichtet ist, dann ist die Berechtigung zu drucken automatisch auch eingestellt.
2. Falls die Berechtigung, Text und Grafiken zu entfernen, eingerichtet ist, dann ist die Berechtigung, Text und Grafiken für Zugriffe Behinderter automatisch auch eingestellt.
3. Falls die Berechtigung, ein Dokument zu ändern, eingerichtet ist, dann sind die folgenden 3 Berechtigungen ebenfalls eingestellt: Dokument zusammenstellen, Anmerkungen ändern, Formularfelder ausfüllen.
4. Falls die Berechtigung, Anmerkungen zu ändern, eingerichtet ist, dann ist die Berechtigung Formularfelder auszufüllen automatisch auch eingestellt.
- currentPermPwd = aktuelles Berechtigungskennwort. Dieser Parameter wird gebraucht, falls das Dokument ein Berechtigungskennwort hat.
Löschen der Sicherheit (Kennwörter, Verschlüsselung & Berechtigungen)
Ein Aufruf von PDFSecure.clearSecurity wird alle Sicherheiten dieses Dokuments entfernen: es wird das Öffnen/Benutzer-Kennwort, Eigentümer/Berechtigungs-Kennwort und die Verschlüsselung löschen. Das bedeutet, dass alle Berechtigungen wieder auf "true" zurückgesetzt werden. Falls das PDF-Dokument ein Berechtigungskennwort hat, muss dieses als ein Parameter (currentPermissionsPwd siehe unten) weitergereicht werden, andernfalls kann es auf "null" belassen bleiben:
// Alle Sicherheitseinstellungen zurücksetzen
pdfSecure.clearSecurity(currentPermissionsPwd);
// Das PDF-Dokument speichern (outputPDFFile ist ein Java-File-Objekt)
pdfSecure.saveDocument(outputPDFFile.getAbsoluteFileName());
Grundlegende Informationen über das PDF-Dokument bestimmen (Titel, Autor, etc...)
Um grundlegende Informationen eines geladenen PDF-Dokuments zu bestimmen, müssen Sie auf die DocumentInfo-Klasse über PDFSecure.getDocumentInfo zugreifen. Von dieser Klasse ausgehend, können Sie Informationen über das Dokument wie Titel, Autor, Betreff, Schlüsselwörter, etc. abfragen.
System.out.println(pdfSecure.getDocumentInfo().getTitle());
System.out.println(pdfSecure.getDocumentInfo().getAuthor());
System.out.println(pdfSecure.getDocumentInfo().getKeywords());
Verteilung und JAR-Dateien
jPDFSecure wird in einer einzigen JAR-Datei ausgeliefert; jPDFSecure.jar – sie wird mit dem Evaluationsbeispiel installiert. Wenn eine Anwendung, die jPDFSecure enthält, verteilt werden soll, muss, damit die Anwendung läuft, die jPDFSecure.jar-Datei zusammen mit ihr verteilt werden; zusätzlich muss diese im Classpath aufgenommen werden.