PDFBox - Verschlüsseln eines PDF-Dokuments
Im vorherigen Kapitel haben wir gesehen, wie Sie ein Bild in ein PDF-Dokument einfügen. In diesem Kapitel wird erläutert, wie Sie ein PDF-Dokument verschlüsseln.
PDF-Dokument verschlüsseln
Sie können ein PDF-Dokument mit den von bereitgestellten Methoden verschlüsseln StandardProtectionPolicy und AccessPermission classes.
Das AccessPermissionDie Klasse dient zum Schutz des PDF-Dokuments durch Zuweisen von Zugriffsberechtigungen. Mit dieser Klasse können Sie Benutzer daran hindern, die folgenden Vorgänge auszuführen.
- Drucken Sie das Dokument
- Ändern Sie den Inhalt des Dokuments
- Kopieren oder extrahieren Sie den Inhalt des Dokuments
- Anmerkungen hinzufügen oder ändern
- Füllen Sie interaktive Formularfelder aus
- Extrahieren Sie Text und Grafiken für die Zugänglichkeit für sehbehinderte Personen
- Bauen Sie das Dokument zusammen
- Drucken Sie in schlechter Qualität
Das StandardProtectionPolicy Klasse wird verwendet, um einem Dokument einen kennwortbasierten Schutz hinzuzufügen.
Im Folgenden finden Sie die Schritte zum Verschlüsseln eines vorhandenen PDF-Dokuments.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Schritt 2: Erstellen eines Zugriffsberechtigungsobjekts
Instanziieren Sie die AccessPermission Klasse wie unten gezeigt.
AccessPermission accessPermission = new AccessPermission();
Schritt 3: Erstellen eines StandardProtectionPolicy-Objekts
Instanziieren Sie die StandardProtectionPolicy Klasse durch Übergabe des Besitzerkennworts, des Benutzerkennworts und des AccessPermission Objekt wie unten gezeigt.
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234","1234",accessPermission);
Schritt 4: Einstellen der Länge des Verschlüsselungsschlüssels
Stellen Sie die Länge des Verschlüsselungsschlüssels mit ein setEncryptionKeyLength() Methode wie unten gezeigt.
spp.setEncryptionKeyLength(128);
Schritt 5: Festlegen der Berechtigungen
Stellen Sie die Berechtigungen mit ein setPermissions()Methode der StandardProtectionPolicy-Klasse. Diese Methode akzeptiert eineAccessPermission Objekt als Parameter.
spp.setPermissions(accessPermission);
Schritt 6: Schützen des Dokuments
Sie können Ihr Dokument mit dem schützen protect() Methode der PDDocumentKlasse wie unten gezeigt. Übergeben Sie dieStandardProtectionPolicy Objekt als Parameter für diese Methode.
document.protect(spp);
Schritt 7: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 8: Schließen des Dokuments
Schließen Sie zum Schluss das Dokument mit close() Methode von PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit dem Namen sample.pdf, in dem Weg C:/PdfBox_Examples/ mit leeren Seiten wie unten gezeigt.
Dieses Beispiel zeigt, wie das oben genannte PDF-Dokument verschlüsselt wird. Hier laden wir das genannte PDF-Dokumentsample.pdfund verschlüsseln. Speichern Sie diesen Code in einer Datei mit NamenEncriptingPDF.java.
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
public class EncriptingPDF {
public static void main(String args[]) throws Exception {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Creating access permission object
AccessPermission ap = new AccessPermission();
//Creating StandardProtectionPolicy object
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);
//Setting the length of the encryption key
spp.setEncryptionKeyLength(128);
//Setting the access permissions
spp.setPermissions(ap);
//Protecting the document
document.protect(spp);
System.out.println("Document encrypted");
//Saving the document
document.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac EncriptingPDF.java
java EncriptingPDF
Bei der Ausführung verschlüsselt das obige Programm das angegebene PDF-Dokument mit der folgenden Meldung.
Document encrypted
Wenn Sie versuchen, das Dokument zu öffnen sample.pdfkönnen Sie nicht, da es verschlüsselt ist. Stattdessen werden Sie aufgefordert, das Kennwort einzugeben, um das Dokument wie unten gezeigt zu öffnen.