В предыдущей главе мы видели, как вставить изображение в документ PDF. В этой главе мы обсудим, как зашифровать PDF-документ.
Шифрование PDF документа
Вы можете зашифровать документ PDF, используя методы, предоставляемые классами StandardProtectionPolicy и AccessPermission .
Класс AccessPermission используется для защиты документа PDF путем назначения ему прав доступа. Используя этот класс, вы можете запретить пользователям выполнять следующие операции.
- Распечатать документ
- Изменить содержание документа
- Копировать или извлечь содержимое документа
- Добавить или изменить аннотации
- Заполните поля интерактивной формы
- Извлечение текста и графики для доступности для людей с нарушениями зрения
- Собрать документ
- Печать в ухудшенном качестве
Класс StandardProtectionPolicy используется для добавления защиты документа на основе пароля.
Ниже приведены шаги для шифрования существующего документа PDF.
Шаг 1. Загрузка существующего PDF-документа
Загрузите существующий документ PDF, используя статический метод load () класса PDDocument . Этот метод принимает объект файла в качестве параметра, поскольку это статический метод, который можно вызвать, используя имя класса, как показано ниже.
File file = new File("path of the document") PDDocument document = PDDocument.load(file);
Шаг 2: Создание объекта прав доступа
Создайте класс AccessPermission, как показано ниже.
AccessPermission accessPermission = new AccessPermission();
Шаг 3. Создание объекта StandardProtectionPolicy
Создайте экземпляр класса StandardProtectionPolicy , передав пароль владельца, пароль пользователя и объект AccessPermission, как показано ниже.
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234","1234",accessPermission);
Шаг 4: Установка длины ключа шифрования
Установите длину ключа шифрования, используя метод setEncryptionKeyLength (), как показано ниже.
spp.setEncryptionKeyLength(128);
Шаг 5: Установка разрешений
Установите разрешения с помощью метода setPermissions () класса StandardProtectionPolicy. Этот метод принимает объект AccessPermission в качестве параметра.
spp.setPermissions(accessPermission);
Шаг 6: Защита документа
Вы можете защитить свой документ с помощью метода protect () класса PDDocument, как показано ниже. Передайте объект StandardProtectionPolicy в качестве параметра этому методу.
document.protect(spp);
Шаг 7: Сохранение документа
После добавления необходимого содержимого сохраните документ PDF с помощью метода save () класса PDDocument, как показано в следующем блоке кода.
document.save("Path");
Шаг 8: Закрытие документа
Наконец, закройте документ, используя метод close () класса PDDocument, как показано ниже.
document.close();
пример
Предположим, у нас есть документ PDF с именем sample.pdf по пути C: / PdfBox_Examples / с пустыми страницами, как показано ниже.
Этот пример демонстрирует, как зашифровать вышеупомянутый документ PDF. Здесь мы загрузим документ PDF с именем sample.pdf и зашифруем его. Сохраните этот код в файле с именем EncriptingPDF.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(); } }
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.
javac EncriptingPDF.java java EncriptingPDF
После выполнения вышеуказанная программа шифрует данный PDF-документ, отображая следующее сообщение.
Document encrypted
Если вы попытаетесь открыть документ sample.pdf , вы не сможете, поскольку он зашифрован. Вместо этого он предлагает ввести пароль, чтобы открыть документ, как показано ниже.