Как реализовать пользовательскую сериализацию и шифрование QR-кода в PDF-файлах с помощью GroupDocs.Signature для Java
Введение
В цифровую эпоху безопасное подписание документов играет ключевую роль в сохранении целостности и подлинности данных. GroupDocs.Signature для Java — мощная библиотека, разработанная для упрощения добавления подписей к документам. Это руководство поможет вам реализовать пользовательскую сериализацию QR-кодов с шифрованием в PDF-файлах с помощью GroupDocs.Signature для Java.
Что вы узнаете:
- Как настроить GroupDocs.Signature для Java
- Реализация пользовательской сериализации для подписей QR-кодов
- Шифрование сериализованных данных в QR-коде
- Применение этих функций для защиты ваших документов
Прежде чем мы углубимся в реализацию, давайте убедимся, что у вас есть все необходимое для выполнения действий.
Предпосылки
Чтобы эффективно использовать это руководство, убедитесь, что выполнены следующие предварительные условия:
Необходимые библиотеки и зависимости:
- GroupDocs.Signature для Java версии 23.12 или выше
- Maven или Gradle для управления зависимостями (необязательно)
Требования к настройке среды:
- На вашем компьютере установлен Java Development Kit (JDK)
- Базовое понимание программирования на Java
Необходимые знания:
- Знакомство с Java и концепциями объектно-ориентированного программирования
- Базовые знания работы с PDF-файлами в Java
Настройка GroupDocs.Signature для Java
Для начала вам необходимо настроить библиотеку GroupDocs.Signature в среде вашего проекта.
Установка Maven
Если вы используете Maven, добавьте следующую зависимость в свой pom.xml
файл:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Установка Gradle
Для пользователей Gradle включите эту строку в свой build.gradle
файл:
implementation 'com.groupdocs:groupdocs-signature:23.12'
Прямая загрузка
Кроме того, вы можете загрузить последнюю версию непосредственно с сайта GroupDocs.Signature для релизов Java.
Этапы получения лицензии
- Бесплатная пробная версия: Начните с загрузки пробной версии, чтобы протестировать ее функции.
- Временная лицензия: При необходимости вы можете запросить временную лицензию, которая позволит вам оценить продукт без каких-либо ограничений.
- Покупка: Для долгосрочного использования рассмотрите возможность приобретения полной лицензии.
После установки инициализируйте GroupDocs.Signature в своем проекте:
import com.groupdocs.signature.Signature;
public class SetupGroupDocs {
public static void main(String[] args) {
Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
// Ваш код здесь...
}
}
Руководство по внедрению
Теперь давайте перейдем к реализации пользовательской сериализации и шифрования QR-кода с помощью GroupDocs.Signature для Java.
Пользовательский класс сериализации для подписей QR-кода
Обзор
Эта функция включает создание класса, который обрабатывает сериализацию метаданных в QR-код подписи. DocumentSignatureData
класс хранит такие атрибуты, как идентификатор, автор, дата подписания и фактор данных.
import com.groupdocs.signature.domain.extensions.serialization.FormatAttribute;
import java.math.BigDecimal;
import java.util.Date;
class DocumentSignatureData {
@FormatAttribute(propertyName = "SignID")
public String ID;
public void setID(String value) {
this.ID = value;
}
@FormatAttribute(propertyName = "SAuth")
public String author;
public void setAuthor(String value) {
this.author = value;
}
@FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
public Date signed = new Date();
public void setSigned(Date value) {
this.signed = value;
}
@FormatAttribute(propertyName = "SDFact", propertyFormat = "N2")
public BigDecimal dataFactor = new BigDecimal(0.01);
public void setDataFactor(BigDecimal value) {
this.dataFactor = value;
}
}
Объяснение
- Атрибуты: The
@FormatAttribute
аннотации указывают, как каждый атрибут сериализуется в QR-код.- ИДЕНТИФИКАТОРУникальный идентификатор подписи.
- Автор: Лицо, подписавшее документ.
- Дата подписания: Отметка времени подписания документа.
- Фактор данных: Дополнительные числовые данные, связанные с подписью.
Подпись QR-кода с пользовательской сериализацией и шифрованием данных
Обзор
В этом разделе показано, как подписать документ с помощью QR-кода, включающего пользовательские сериализованные данные и шифрование.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import java.io.File;
import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;
class SignWithQRCodeCustomSerialization {
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", "SignedQRCodeCustomSerialization.pdf").getPath();
public void signDocument() throws Exception {
Signature signature = new Signature(filePath);
// Реализуйте здесь свою собственную логику шифрования
IDataEncryption encryption = new CustomXOREncryption();
DocumentSignatureData documentSignature = new DocumentSignatureData();
documentSignature.setID(UUID.randomUUID().toString());
documentSignature.setAuthor(System.getenv("USERNAME"));
documentSignature.setSigned(new Date());
documentSignature.setDataFactor(new BigDecimal("11.22"));
QrCodeSignOptions options = new QrCodeSignOptions();
options.setData(documentSignature);
options.setEncodeType(QrCodeTypes.QR);
options.setDataEncryption(encryption);
// Настроить выравнивание и внешний вид
options.setHeight(100);
options.setWidth(100);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
Padding padding = new Padding();
padding.setRight(10);
padding.setBottom(10);
options.setMargin(padding);
signature.sign(outputFilePath, options);
}
}
Объяснение
- Пользовательское шифрование: Реализуйте собственную логику шифрования в
CustomXOREncryption
или использовать любой другой метод, реализующийIDataEncryption
. - Варианты подписи: Настройте внешний вид и выравнивание QR-кода с помощью таких параметров, как высота, ширина, отступы и т. д.
- Процесс подписания: The
signature.sign()
метод применяет подпись QR-кода к документу.
Советы по устранению неполадок
- Убедитесь, что все зависимости правильно настроены в вашем инструменте сборки (Maven/Gradle).
- Проверьте правильность путей к файлам входных и выходных документов.
- Убедитесь, что ваша логика шифрования правильно реализована и интегрирована.
Практические применения
Вот некоторые реальные применения этой функции:
- Подписание юридических документов: Подписывайте контракты безопасно, используя метаданные, встроенные в QR-коды, для обеспечения их подлинности.
- Обработка счетов: Автоматически добавляйте зашифрованные подписи к счетам-фактурам для дополнительной безопасности и отслеживаемости.
- Отслеживание логистики: Используйте подписанные документы для отслеживания отправлений, встраивая уникальные идентификаторы и временные метки в QR-коды.
- Академические сертификаты: Безопасное встраивание информации о студенте в цифровые сертификаты с помощью подписи с помощью QR-кода