Ir para o conteúdo do rodapé
USANDO O IRONPDF FOR JAVA

Como adicionar assinaturas digitais a PDFs em Java

Neste artigo, você aprenderá como adicionar uma assinatura digital a um PDF usando o IronPDF em um programa Java.

IronPDF - Uma biblioteca Java para PDF

A biblioteca IronPDF for Java é uma biblioteca que permite aos desenvolvedores criar novos documentos PDF do zero, convertendo strings HTML em PDF , arquivos HTML em PDF , arquivos Word em PDF ou URLs. Ele ajuda a manipular PDFs facilmente, adicionando ou removendo conteúdo. Oferece opções de segurança e assinatura digital para documentos PDF, além da própria assinatura digital.

O IronPDF não requer nenhuma biblioteca de terceiros para executar nenhuma de suas tarefas relacionadas a PDF. Também oferece a possibilidade de converter entre diferentes formatos de arquivo. Oferece suporte multiplataforma e foi projetado especificamente for Java, Scala e Kotlin.

Passos para adicionar assinaturas digitais a um documento PDF em Java

Pré-requisitos

Para assinar digitalmente documentos PDF, os seguintes pré-requisitos são necessários:

  • É necessário ter instalado qualquer IDE Java (NetBeans, Eclipse, IntelliJ) - Este artigo utilizará o IntelliJ. Você pode baixar o Java Development Kit separadamente na página de downloads do Oracle Java SE .
  • Projeto Maven Java para Automação - Isso ajudará a baixar e gerenciar as dependências em seu programa Java. Você pode baixar o Maven na página de downloads do Apache Maven .
  • Biblioteca IronPDF baixada e instalada - Para baixar e instalar o IronPDF, inclua seu artefato de dependência Maven. Você pode adicionar o seguinte trecho de código na tag de dependências do arquivo pom.xml:
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
XML

Outra dependência necessária é o Slf4j-simple. É opcional e pode ser adicionado usando a seguinte dependência no arquivo pom.xml:

```xml
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
```

Como adicionar assinaturas digitais a PDFs em Java, Figura 1: arquivo pom.xml Arquivo pom.xml

Importar pacotes Java do IronPDF

As seguintes importações são necessárias no arquivo principal. Elas permitem usar as funções do IronPDF para adicionar uma assinatura digital a um documento PDF:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Agora, tudo o que é necessário está feito e pronto para adicionar uma assinatura digital a documentos PDF em Java usando o IronPDF.

Criar arquivo PDF ou abrir arquivo PDF existente

Para aprender como assinar PDFs digitalmente , é necessário criar um documento PDF do zero ou abrir um documento PDF já existente. Este artigo criará um novo documento PDF para assinatura PDF usando o renderHtmlAsPdf Method do PdfDocument Class . O código é o seguinte:

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

O documento PDF foi criado, mas ainda não foi salvo. Portanto, o próximo passo é criar uma assinatura digital, adicioná-la a este documento PDF e, finalmente, salvá-lo.

Criar uma assinatura digital

Você precisará criar um certificado de assinatura digital usando o Adobe Reader, que será utilizado no código Java para assinar digitalmente documentos PDF com esses dados. Você pode conferir o artigo Como Criar uma Assinatura Digital no Adobe Reader .

Abra o Adobe Reader e clique em Editar > Preferências . Em seguida, clique em Assinaturas e depois em Mais informações sobre Identidades e Certificados Confiáveis.

Como adicionar assinaturas digitais a PDFs em Java, Figura 2: As preferências do projeto As preferências do projeto

Adicione o seguinte campo de assinatura para tornar o arquivo .pfx ou .p12 um documento.

Como adicionar assinaturas digitais a PDFs em Java, Figura 3: Diálogo Adicionar ID Digital Diálogo Adicionar ID Digital

O exemplo de código a seguir criará uma nova assinatura em código Java usando o arquivo de certificado .pfx para Windows e o arquivo .p12 para Mac, juntamente com sua chave privada (senha):

Signature signature = new Signature("Iron.pfx", "123456");
Signature signature = new Signature("Iron.pfx", "123456");
JAVA

Assinar arquivo PDF com assinatura digital

O IronPDF ajuda a adicionar o certificado de assinatura usando a classe SignatureManager. [getSignature Method](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature() ) ajuda a obter a assinatura anterior do documento PDF e, em seguida, uma nova assinatura pode ser adicionada usando SignPdfWithSignature Method com o arquivo de assinatura como argumento. O código é o seguinte:

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

Salvar arquivo de assinatura em PDF

Finalmente, vamos salvar o arquivo PDF; caso contrário, o PDF não será assinado usando o saveAs Method da classe PdfDocument. O código é simples e segue abaixo:

pdf.saveAs("signed.pdf");
pdf.saveAs("signed.pdf");
JAVA

Após a compilação e execução bem-sucedidas do código, o resultado é um PDF com assinatura digital.

Como adicionar assinaturas digitais a PDFs em Java, Figura 4: O arquivo PDF de saída O arquivo PDF de saída

O IronPDF também oferece outras opções de assinatura, que são opcionais e também podem ser usadas para assinaturas digitais. Inclui imagens de assinaturas na forma de escrita à mão, imagens de texto geradas por computador ou imagens digitalizadas. O exemplo de código a seguir ajuda você a adicionar algumas opções de segurança adicionais para assinatura digital:

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

O código completo é o seguinte:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
JAVA

Você pode conferir mais informações sobre Assinatura Digital no Exemplo de Código de Assinaturas em PDF . Se você deseja adicionar mais segurança e até mesmo editar metadados, consulte o Exemplo de Código de Segurança e Metadados .

Conclusão

Este artigo explica passo a passo como adicionar assinaturas digitais a documentos PDF usando o IronPDF for Java.

Primeiramente, o artigo abordou os componentes necessários para trabalhar com PDFs em Java usando o IronPDF. Em seguida, criei um documento PDF simples usando uma string HTML. Um arquivo de certificado foi criado a partir do Adobe Reader, o qual foi utilizado para assinar o documento PDF original. O IronPDF fornece as classes Signature e SignatureManager , que ajudam os usuários a adicionar um certificado e assinar PDFs com um campo de assinatura.

O IronPDF facilita aos desenvolvedores a execução de tarefas relacionadas a PDFs com facilidade e rapidez. Ele fornece resultados precisos com PDFs perfeitos em cada pixel. Para uma linguagem de programação versátil e amplamente utilizada como Java, o IronPDF é ideal para trabalhar com documentos PDF, pois também é versátil e suporta quase todas as operações com PDFs. Além disso, ele é construído sobre recursos .NET já consagrados.

O IronPDF também oferece conversão fácil de diferentes formatos de arquivo, usando o rápido IronPDFEngine projetado especificamente for Java. Você pode usar a biblioteca IronPDF para extrair ou adicionar texto , carregar e extrair imagens , adicionar cabeçalhos e rodapés a PDFs , anotações, renderizar gráficos e tabelas em PDFs , trabalhar com formulários em PDF e muito mais.

Você pode obter informações detalhadas sobre como usar o IronPDF nas páginas de exemplos de código Java para PDF .

O IronPDF é gratuito para desenvolvimento individual e oferece um período de teste gratuito sem marca d'água para gerar documentos PDF. Pode ser licenciado para uso comercial, e seus usuários podem obter mais informações sobre a licença nesta página de informações detalhadas sobre licenciamento .

Perguntas frequentes

Como posso adicionar uma assinatura digital a um PDF em Java?

É possível adicionar uma assinatura digital a um PDF em Java usando o IronPDF, criando ou abrindo um documento PDF, gerando uma assinatura digital com um arquivo de certificado e usando a classe `SignatureManager` do IronPDF para aplicar a assinatura. Por fim, salve o documento PDF assinado.

Quais são os passos para converter HTML em PDF usando uma biblioteca Java?

Para converter HTML em PDF usando o IronPDF em Java, utilize o método ` PdfDocument.renderHtmlAsPdf . Isso permite converter strings HTML diretamente em um documento PDF, que pode então ser salvo usando o método PdfDocument.saveAs .

Quais são os pré-requisitos necessários para usar o IronPDF em um projeto Java?

Para usar o IronPDF em um projeto Java, você precisa de uma IDE Java como o IntelliJ, um projeto Maven para gerenciar as dependências e a biblioteca IronPDF. Além disso, para adicionar assinaturas digitais, é necessário um certificado de assinatura digital.

O IronPDF em Java consegue converter outros formatos de arquivo para PDF?

Sim, além de HTML, o IronPDF pode converter vários outros formatos de arquivo, como documentos do Word e URLs, para PDF em um aplicativo Java.

O IronPDF requer bibliotecas de terceiros para funcionalidades de PDF?

Não, o IronPDF não requer nenhuma biblioteca de terceiros para suas funcionalidades principais de PDF, tornando-se uma solução independente para criação e manipulação de PDFs em Java.

Como faço para gerar um certificado de assinatura digital para assinar PDFs?

É possível criar um certificado de assinatura digital usando o Adobe Reader, acessando Editar > Preferências > Assinaturas e gerenciando Identidades e Certificados Confiáveis.

Qual classe do IronPDF é usada para gerenciar assinaturas digitais em Java?

A classe SignatureManager do IronPDF é usada para gerenciar assinaturas digitais em Java. Ela permite adicionar novas assinaturas e recuperar assinaturas existentes de um documento PDF.

Quais opções adicionais estão disponíveis para assinatura digital com IronPDF em Java?

O IronPDF em Java oferece opções para adicionar imagens de assinatura, especificar o contato, a localização e o motivo da assinatura, além de adicionar caligrafia e imagens digitalizadas à assinatura digital.

Existe alguma versão gratuita do IronPDF for Java?

O IronPDF oferece um período de teste gratuito para desenvolvimento individual e pode ser usado sem marca d'água. Existem opções de licenciamento disponíveis para uso comercial.

Quais são alguns recursos avançados do IronPDF for Java?

O IronPDF for Java inclui funcionalidades como extração de texto e imagem, adição de cabeçalhos e rodapés, renderização de gráficos e tabelas e trabalho com formulários PDF.

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim