Implementando assinatura de código QR Java com GroupDocs.Signature para Java

Introdução

Aumente a segurança dos seus documentos digitais incorporando códigos QR em seus aplicativos Java. Utilizar o GroupDocs.Signature para Java permite garantir a autenticidade e a rastreabilidade dos documentos de forma eficaz. Este guia orientará você na criação de assinaturas de dados personalizadas, na configuração de opções de assinatura de código QR e na proteção dos seus documentos com criptografia robusta.

O que você aprenderá:

  • Como criar uma classe de assinatura de dados personalizada usando GroupDocs.Signature
  • Configurando opções de sinalização de código QR em aplicativos Java
  • Assinatura de documentos com códigos QR e aplicação de criptografia personalizada

Vamos nos aprofundar nos pré-requisitos e começar a integrar essa funcionalidade aos seus projetos!

Pré-requisitos

Antes de começar, certifique-se de ter configurado as bibliotecas e dependências necessárias no seu ambiente de desenvolvimento.

Bibliotecas e versões necessárias

Para implementar GroupDocs.Signature para Java, inclua a seguinte dependência:

Especialista

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

Gradle

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

Você também pode baixar a versão mais recente diretamente de GroupDocs.Signature para versões Java.

Requisitos de configuração do ambiente

  • Certifique-se de ter um Java Development Kit (JDK) instalado.
  • Configure seu Ambiente de Desenvolvimento Integrado (IDE), como IntelliJ IDEA ou Eclipse.

Pré-requisitos de conhecimento

  • Noções básicas de programação Java e conceitos orientados a objetos.
  • Familiaridade com o tratamento de dependências usando Maven ou Gradle.

Configurando GroupDocs.Signature para Java

Para começar, configure o GroupDocs.Signature no seu projeto seguindo as instruções de instalação acima para incluí-lo na sua configuração de compilação.

Etapas de aquisição de licença

O GroupDocs oferece diferentes opções de licenciamento:

  • Teste grátis: Teste todos os recursos sem limitações.
  • Licença Temporária: Obtenha uma licença para fins de avaliação.
  • Comprar: Adquira uma licença completa para uso comercial.

Após o download, inicialize o GroupDocs.Signature assim:

import com.groupdocs.signature.Signature;

class InitializeGroupDocs {
    public static void main(String[] args) {
        Signature signature = new Signature("path/to/your/document");
        // Agora você pode começar a usar o objeto de assinatura para trabalhar com documentos.
    }
}

Guia de Implementação

Vamos dividir o processo de implementação em seções gerenciáveis, com foco nos principais recursos.

Classe de Assinatura de Dados Personalizada

Visão geral

Crie uma classe personalizada para armazenar dados de assinatura, como ID, autor, data da assinatura e fatores adicionais. Isso garante que você tenha todos os metadados necessários encapsulados em suas assinaturas.

Implementação passo a passo

Defina a classe DocumentSignatureData

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

class DocumentSignatureData {
    @FormatAttribute(propertyName = "SignID")
    public String ID; // Identificador único para a assinatura
    
    public String getID() { return ID; }
    public void setID(String value) { ID = value; }
    
    @FormatAttribute(propertyName = "SAuth")
    public final String Author; // Autor do documento
    
    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(); // Data e hora da assinatura
    
    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); // Fator de dados adicional para assinatura
    
    public final BigDecimal getDataFactor() { return DataFactor; }
    public final void setDataFactor(BigDecimal value) { DataFactor = value; }
}

Explicação:

  • Atributo de formato: Anota propriedades para personalizar a serialização.
  • Propriedades: Capture detalhes essenciais como ID exclusivo, nome do autor, data de assinatura e fator de dados.

Configuração de opções de assinatura de código QR

Visão geral

Configure as opções de assinatura do código QR para definir como seus códigos QR aparecerão nos documentos, incluindo tamanho, alinhamento e preenchimento.

Implementação passo a passo

Defina a classe QrCodeSignOptionsConfig

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();
        
        // Serializar o objeto de dados personalizado em código QR
        options.setData(documentSignature);
        
        // Especificar o tipo de código QR
        options.setEncodeType(QrCodeTypes.QR);
        
        // Configurar preenchimento para alinhamento
        Padding padding = new Padding();
        padding.setRight(10); // Preenchimento direito em pixels
        padding.setBottom(10); // Preenchimento inferior em pixels
        options.setMargin(padding);
        
        // Definir tamanho e posição do código QR
        options.setHeight(100);
        options.setWidth(100);
        options.setVerticalAlignment(VerticalAlignment.Bottom);
        options.setHorizontalAlignment(HorizontalAlignment.Right);
        
        return options;
    }
}

Explicação:

  • Opções de assinatura de código QR: Gerencia como o código QR é exibido, incluindo seu tamanho e posição.
  • PreenchimentoAjusta o alinhamento dentro do documento.

Assinatura de documentos com código QR e criptografia personalizada

Visão geral

Combine códigos QR e criptografia personalizada para assinar documentos com segurança. Isso garante a integridade e a confidencialidade dos dados.

Implementação passo a passo

Assine um documento com código QR

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

            // Estratégia de criptografia XOR personalizada
            IDataEncryption encryption = new CustomXOREncryption();

            // Configurar o objeto de dados de assinatura de documento personalizado
            DocumentSignatureData documentSignature = new DocumentSignatureData();
            documentSignature.setID(UUID.randomUUID().toString());
            documentSignature.setAuthor(System.getenv("USERNAME"));
            documentSignature.setSigned(new Date());
            documentSignature.setDataFactor(new BigDecimal("11.22"));

            // Configurar opções de QR-Code
            QrCodeSignOptions options = QrCodeSignOptionsConfig.setupQrCodeSignOptions(documentSignature);

            // Aplique criptografia aos dados dentro do código QR
            options.setDataEncryption(encryption);

            // Assine e salve o documento
            signature.sign(outputFilePath, options);
        } catch (Exception e) {
            throw new GroupDocsSignatureException(e.getMessage());
        }
    }
}

Explicação:

  • Criptografia XOREnsion personalizada: Implementa uma estratégia de criptografia personalizada para proteger dados de código QR.
  • UUID: Gera um identificador exclusivo para cada assinatura.