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>
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>
```
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;
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>");
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.
As preferências do projeto
Adicione o seguinte campo de assinatura para tornar o arquivo .pfx ou .p12 um documento.
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");
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);
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");
Após a compilação e execução bem-sucedidas do código, o resultado é um PDF com assinatura digital.
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());
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");
}
}
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.




