Jak wdrożyć niestandardową serializację i szyfrowanie kodu QR w plikach PDF za pomocą GroupDocs.Signature dla języka Java

Wstęp

W erze cyfrowej bezpieczne podpisywanie dokumentów jest niezbędne do zachowania integralności i autentyczności danych. Poznaj GroupDocs.Signature for Java — potężną bibliotekę zaprojektowaną z myślą o uproszczeniu dodawania podpisów do dokumentów. Ten samouczek przeprowadzi Cię przez proces implementacji niestandardowej serializacji kodów QR z szyfrowaniem w plikach PDF za pomocą GroupDocs.Signature for Java.

Czego się nauczysz:

  • Jak skonfigurować GroupDocs.Signature dla języka Java
  • Wdrażanie niestandardowej serializacji dla podpisów kodów QR
  • Szyfrowanie danych seryjnych w kodzie QR
  • Zastosowanie tych funkcji w celu zabezpieczenia dokumentów

Zanim przejdziemy do implementacji, upewnijmy się, że masz wszystko, co potrzebne do dalszej pracy.

Wymagania wstępne

Aby efektywnie korzystać z tego samouczka, upewnij się, że spełniasz następujące wymagania wstępne:

  1. Wymagane biblioteki i zależności:

    • GroupDocs.Signature dla Java w wersji 23.12 lub nowszej
    • Maven lub Gradle do zarządzania zależnościami (opcjonalnie)
  2. Wymagania dotyczące konfiguracji środowiska:

    • Java Development Kit (JDK) zainstalowany na Twoim komputerze
    • Podstawowa znajomość programowania w Javie
  3. Wymagania wstępne dotyczące wiedzy:

    • Znajomość języka Java i koncepcji programowania obiektowego
    • Podstawowa wiedza na temat pracy z plikami PDF w Javie

Konfigurowanie GroupDocs.Signature dla języka Java

Aby rozpocząć, musisz skonfigurować bibliotekę GroupDocs.Signature w środowisku swojego projektu.

Instalacja Maven

Jeśli używasz Mavena, dodaj następującą zależność do swojego pom.xml plik:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Instalacja Gradle

Użytkownicy Gradle powinni uwzględnić ten wiersz w swoim build.gradle plik:

implementation 'com.groupdocs:groupdocs-signature:23.12'

Bezpośrednie pobieranie

Alternatywnie możesz pobrać najnowszą wersję bezpośrednio ze strony GroupDocs.Signature dla wydań Java.

Etapy uzyskania licencji

  • Bezpłatny okres próbny: Na początek pobierz wersję próbną, aby przetestować jej funkcje.
  • Licencja tymczasowa: W razie potrzeby możesz wystąpić o tymczasową licencję, która umożliwi Ci wypróbowanie produktu bez żadnych ograniczeń.
  • Zakup: W przypadku długoterminowego użytkowania należy rozważyć zakup pełnej licencji.

Po zainstalowaniu zainicjuj GroupDocs.Signature w swoim projekcie:

import com.groupdocs.signature.Signature;

public class SetupGroupDocs {
    public static void main(String[] args) {
        Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
        // Twój kod tutaj...
    }
}

Przewodnik wdrażania

Teraz zajmiemy się implementacją niestandardowej serializacji i szyfrowania kodu QR za pomocą GroupDocs.Signature dla Java.

Niestandardowa klasa serializacji dla podpisów w kodzie QR

Przegląd

Ta funkcja polega na utworzeniu klasy, która obsługuje serializację metadanych do podpisu w postaci kodu QR. DocumentSignatureData Klasa przechowuje atrybuty takie jak ID, autor, data podpisu i współczynnik danych.

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;
    }
}

Wyjaśnienie

  • Atrybuty: Ten @FormatAttribute Adnotacje określają sposób serializacji każdego atrybutu w kodzie QR.
    • IDUnikalny identyfikator podpisu.
    • Autor:Osoba, która podpisała dokument.
    • Data podpisu:Znacznik czasu podpisania dokumentu.
    • Współczynnik danych:Dodatkowe dane liczbowe związane z podpisem.

Podpis w kodzie QR z niestandardową serializacją danych i szyfrowaniem

Przegląd

W tej sekcji pokazano, jak podpisać dokument za pomocą kodu QR zawierającego niestandardowe dane seryjne i szyfrowanie.

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);

        // Zaimplementuj tutaj swoją niestandardową logikę szyfrowania
        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);

        // Konfiguruj wyrównanie i wygląd
        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);
    }
}

Wyjaśnienie

  • Szyfrowanie niestandardowe: Zaimplementuj własną logikę szyfrowania w CustomXOREncryption lub użyj jakiejkolwiek innej metody implementacji IDataEncryption.
  • Opcje podpisu: Skonfiguruj wygląd i wyrównanie kodu QR za pomocą opcji takich jak wysokość, szerokość, odstęp itp.
  • Proces podpisywania: Ten signature.sign() Metoda ta polega na dodaniu do dokumentu podpisu w postaci kodu QR.

Wskazówki dotyczące rozwiązywania problemów

  • Upewnij się, że wszystkie zależności są poprawnie skonfigurowane w narzędziu do kompilacji (Maven/Gradle).
  • Sprawdź, czy ścieżki dostępu do plików dokumentów wejściowych i wyjściowych są prawidłowe.
  • Sprawdź, czy Twoja niestandardowa logika szyfrowania jest poprawnie wdrożona i zintegrowana.

Zastosowania praktyczne

Oto kilka zastosowań tej funkcji w świecie rzeczywistym:

  1. Podpisywanie dokumentów prawnych: Bezpiecznie podpisuj umowy, wykorzystując metadane osadzone w kodach QR, aby zapewnić ich autentyczność.
  2. Przetwarzanie faktur: Automatycznie dodawaj zaszyfrowane podpisy do faktur, aby zwiększyć bezpieczeństwo i możliwość śledzenia.
  3. Śledzenie logistyki: Korzystaj z podpisanych dokumentów w celu śledzenia przesyłek, osadzając unikalne identyfikatory i znaczniki czasu w kodach QR.
  4. Certyfikaty akademickie: Bezpiecznie umieszczaj informacje o uczniach w cyfrowych certyfikatach, korzystając z podpisu w postaci kodu QR