jPDFSecure Entwicklerhandbuch

Inhaltjavalogo

Einführung
Erste Schritte
Lesen des aktuellen Kennworts / Verschlüsselung-Info
Lesen der aktuellen Berechtigungen
Verändern der Sicherheit (Kennwörter, Verschlüsselung und Berechtigungen)
Löschen der Sicherheit (Kennwörter, Verschlüsselung und Berechtigungen)
Grundlegende Dokument-Informationen bestimmen
Verteilung und JAR-Dateien

Javadoc API
Source Code Samples

Einführung

jPDFSecure ist eine Java-Bibliothek, die sich nahtlos in Ihre Anwendung 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.mysite.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 document is encrypted
System.out.println(pdfSecure.isEncrypted());
// PDF document has an Open (or User) password (password to open the document) 
System.out.println(pdfSecure.hasOpenPassword()); 
// PDF document has a Permissions (or Owner) password (password to update permissions) 
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();
 
// permission to print high resolution
System.out.println( perms.isPrintHighResAllowed());
 
// permission to print
// automatically on if the permission to print high res is on
System.out.println( perms.isPrintAllowed());
 
// permission to copy text and graphics
System.out.println(perms.isExtractTextGraphicsAllowed());
 
// permission to copy text and graphics for disabled users
// automatically on of the permissions to copy text and graphics is on
System.out.println(perms.isExtractTextGraphicsForAccessibilityAllowed());
 
// permission to change the document
System.out.println(perms.isChangeDocumentAllowed()); 
// permission to assemble document: insert, rotate, delete pages
// automatically on if the permission to change document is on
System.out.println(perms.isAssembleDocumentAllowed());
 
// permission to add/modify annotations
// automatically on if the permission to change document is on
System.out.println(perms.isModifyAnnotsAllowed());
 
// permission to fill form fields and sign
// automatically on if the permission to change document is on
// also automatically on if the permission to modify annotations is on
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.

// set new security settings
pdfSecure.setSecurity (newPermPwd, newOpenPwd, permissions, currentPermPwd, PDFPermissions.ENCRYPTION_AES_128);
 
// save pdf document (outputPDFFile is a Java File Object)
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 = 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

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:

// clear all security settings
pdfSecure.clearSecurity(currentPermissionsPwd);
 
// save pdf document (outputPDFFile is a Java File Object)
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());

erteilung 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.

Javadoc API
Source Code Samples