Implementatie van Java QR-codeondertekening met GroupDocs.Signature voor Java

Invoering

Verbeter de beveiliging van uw digitale documenten door QR-codes in uw Java-applicaties te integreren. Met GroupDocs.Signature voor Java kunt u de authenticiteit en traceerbaarheid van uw documenten effectief waarborgen. Deze handleiding begeleidt u bij het maken van aangepaste gegevenshandtekeningen, het configureren van opties voor QR-codeondertekening en het beveiligen van uw documenten met robuuste encryptie.

Wat je leert:

  • Een aangepaste gegevenshandtekeningklasse maken met behulp van GroupDocs.Signature
  • Opties voor QR-code-ondertekening configureren in Java-toepassingen
  • Documenten ondertekenen met QR-codes en aangepaste encryptie toepassen

Laten we eens kijken naar de vereisten en deze functionaliteit in uw projecten integreren!

Vereisten

Voordat u begint, moet u ervoor zorgen dat u de benodigde bibliotheken en afhankelijkheden in uw ontwikkelomgeving hebt ingesteld.

Vereiste bibliotheken en versies

Om GroupDocs.Signature voor Java te implementeren, neemt u de volgende afhankelijkheid op:

Maven

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

Gradle

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

U kunt de nieuwste versie ook rechtstreeks downloaden van GroupDocs.Signature voor Java-releases.

Vereisten voor omgevingsinstellingen

  • Zorg ervoor dat u een werkende Java Development Kit (JDK) hebt geïnstalleerd.
  • Stel uw Integrated Development Environment (IDE) in, zoals IntelliJ IDEA of Eclipse.

Kennisvereisten

  • Basiskennis van Java-programmering en objectgeoriënteerde concepten.
  • Kennis van het omgaan met afhankelijkheden met behulp van Maven of Gradle.

GroupDocs.Signature instellen voor Java

Om te beginnen installeert u GroupDocs.Signature in uw project. Volg hiervoor de bovenstaande installatie-instructies om het op te nemen in uw buildconfiguratie.

Stappen voor het verkrijgen van een licentie

GroupDocs biedt verschillende licentieopties:

  • Gratis proefperiode: Test alle functies zonder beperkingen.
  • Tijdelijke licentie: Vraag een licentie aan voor evaluatiedoeleinden.
  • Aankoop: Schaf een volledige licentie aan voor commercieel gebruik.

Na het downloaden initialiseert u GroupDocs.Signature als volgt:

import com.groupdocs.signature.Signature;

class InitializeGroupDocs {
    public static void main(String[] args) {
        Signature signature = new Signature("path/to/your/document");
        // U kunt nu het handtekeningobject gebruiken om met documenten te werken.
    }
}

Implementatiegids

Laten we het implementatieproces opdelen in beheersbare stappen, waarbij we ons richten op de belangrijkste functies.

Aangepaste gegevenshandtekeningklasse

Overzicht

Maak een aangepaste klasse om handtekeninggegevens op te slaan, zoals ID, auteur, ondertekeningsdatum en aanvullende factoren. Zo zorgt u ervoor dat alle benodigde metadata in uw handtekeningen zijn opgenomen.

Stapsgewijze implementatie

Definieer de DocumentSignatureData-klasse

import com.groupdocs.signature.domain.extensions.serialization.FormatAttribute;
import java.util.Date;
import java.math.BigDecimal;

class DocumentSignatureData {
    @FormatAttribute(propertyName = "SignID")
    public String ID; // Unieke identificatie voor de handtekening
    
    public String getID() { return ID; }
    public void setID(String value) { ID = value; }
    
    @FormatAttribute(propertyName = "SAuth")
    public final String Author; // Auteur van het document
    
    public final String getAuthor() { return Author; }
    public final void setAuthor(String value) { Author = value; }
    
    @FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
    public final Date Signed = new Date(); // Datum en tijd van ondertekening
    
    public final Date getSigned() { return Signed; }
    public final void setSigned(Date value) { Signed = value; }
    
    @FormatAttribute(propertyName = "SDFact", propertyFormat = "N2")
    public final BigDecimal DataFactor = new BigDecimal(0.01); // Extra datafactor voor handtekening
    
    public final BigDecimal getDataFactor() { return DataFactor; }
    public final void setDataFactor(BigDecimal value) { DataFactor = value; }
}

Uitleg:

  • Opmaakkenmerk: Annoteert eigenschappen om de serialisatie aan te passen.
  • Eigenschappen: Leg essentiële details vast, zoals de unieke ID, de naam van de auteur, de ondertekeningsdatum en de datafactor.

Configuratie van QR-code-ondertekeningsopties

Overzicht

Configureer de opties voor QR-codeondertekening om te bepalen hoe uw QR-codes op documenten worden weergegeven, inclusief grootte, uitlijning en opvulling.

Stapsgewijze implementatie

Definieer de QrCodeSignOptionsConfig-klasse

import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;

class QrCodeSignOptionsConfig {
    public static QrCodeSignOptions setupQrCodeSignOptions(DocumentSignatureData documentSignature) {
        QrCodeSignOptions options = new QrCodeSignOptions();
        
        // Serialiseer het aangepaste dataobject in een QR-code
        options.setData(documentSignature);
        
        // Geef het QR-codetype op
        options.setEncodeType(QrCodeTypes.QR);
        
        // Padding voor uitlijning configureren
        Padding padding = new Padding();
        padding.setRight(10); // Rechtervulling in pixels
        padding.setBottom(10); // Onderste opvulling in pixels
        options.setMargin(padding);
        
        // Definieer de grootte en positie van de QR-code
        options.setHeight(100);
        options.setWidth(100);
        options.setVerticalAlignment(VerticalAlignment.Bottom);
        options.setHorizontalAlignment(HorizontalAlignment.Right);
        
        return options;
    }
}

Uitleg:

  • QrCodeSignOptions: Hiermee bepaalt u hoe de QR-code wordt weergegeven, inclusief de grootte en positie.
  • OpvullingPast de uitlijning in het document aan.

Documentondertekening met QR-code en aangepaste encryptie

Overzicht

Combineer QR-codes en aangepaste encryptie om documenten veilig te ondertekenen. Dit garandeert de integriteit en vertrouwelijkheid van de gegevens.

Stapsgewijze implementatie

Onderteken een document met een QR-code

import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption;
import com.groupdocs.signature.exception.GroupDocsSignatureException;

import java.util.UUID;

class SignDocumentWithQRCode {
    public static void signDocument(String filePath, String outputFilePath) throws Exception {
        try {
            Signature signature = new Signature(filePath);

            // Aangepaste XOR-encryptiestrategie
            IDataEncryption encryption = new CustomXOREncryption();

            // Configureer het aangepaste documenthandtekeninggegevensobject
            DocumentSignatureData documentSignature = new DocumentSignatureData();
            documentSignature.setID(UUID.randomUUID().toString());
            documentSignature.setAuthor(System.getenv("USERNAME"));
            documentSignature.setSigned(new Date());
            documentSignature.setDataFactor(new BigDecimal("11.22"));

            // QR-code-opties instellen
            QrCodeSignOptions options = QrCodeSignOptionsConfig.setupQrCodeSignOptions(documentSignature);

            // Pas encryptie toe op de gegevens in de QR-code
            options.setDataEncryption(encryption);

            // Onderteken en sla het document op
            signature.sign(outputFilePath, options);
        } catch (Exception e) {
            throw new GroupDocsSignatureException(e.getMessage());
        }
    }
}

Uitleg:

  • CustomXOREncryption: Implementeert een aangepaste encryptiestrategie voor het beveiligen van QR-codegegevens.
  • UUID: Genereert een unieke identificatie voor elke handtekening.