Este artigo fornece um guia passo a passo e exemplos de código para criptografar e descriptografar arquivos PDF programaticamente em Java.
Em vários casos, os documentos PDF são criptografados antes de serem compartilhados entre as partes interessadas. A criptografia torna o documento seguro contra acesso não autorizado, bem como adulteração de conteúdo. Existem algumas maneiras populares de proteger documentos PDF - criptografar PDF com uma senha ou limitar as permissões de acesso do usuário, como impressão, edição, cópia, etc. Este artigo demonstra como criptografar ou descriptografar um PDF em Java. Além disso, você aprenderá a limitar os privilégios do usuário em um documento PDF.
- API Java para criptografar ou descriptografar PDF
- Criptografar um arquivo PDF usando Java
- Descriptografar um arquivo PDF usando Java
- Alterar permissões de segurança em um PDF usando Java
API Java para criptografar ou descriptografar PDF - Download grátis
Aspose.PDF for Java é uma API de manipulação de PDF rica em recursos que permite trabalhar com criptografia e descriptografia de PDF sem problemas. Além disso, permite modificar os privilégios do usuário nos documentos PDF de forma programática. Você pode baixar a API gratuitamente ou instalá-la usando as seguintes configurações do Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
Criptografar um arquivo PDF em Java
A criptografia de um documento PDF exige que você defina uma senha que será usada para abrir e acessar o documento. Junto com isso, você pode escolher um dos seguintes algoritmos criptográficos para serem usados na criptografia.
- RC4 com uma chave de 40 bits
- RC4 com uma chave de 128 bits
- AES com uma chave de 128 bits
- AES com uma chave de 256 bits
A seguir estão as etapas para criptografar um arquivo PDF em Java.
- Carregue o documento PDF usando a classe Document.
- Criptografe o PDF usando o método Document.encrypt(“userpassword”, “ownerpassword”, 0, CryptoAlgorithm).
- Salve o PDF criptografado usando o método Document.save(string).
O exemplo de código a seguir mostra como criptografar um documento PDF usando Java.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento aberto
Document document = new Document("input.pdf");
// criptografar PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// salvar PDF atualizado
document.save("Encrypted_output.pdf");
A caixa de diálogo a seguir aparece quando você abre o PDF criptografado.
Descriptografar um arquivo PDF em Java
A descriptografia de um documento PDF criptografado requer a senha do usuário ou do proprietário. A seguir estão as etapas para descriptografar um arquivo PDF em Java.
- Carregue o PDF criptografado usando a classe Document especificando a senha no construtor.
- Chame o método Document.decrypt() para descriptografar o PDF.
- Salve o documento PDF descriptografado usando o método Document.save(string).
O exemplo de código a seguir mostra como descriptografar um PDF criptografado usando Java.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento aberto
Document document = new Document("input.pdf", "password");
// descriptografar PDF
document.decrypt();
// salvar PDF atualizado
document.save("output.pdf");
Alterar permissões de segurança em um PDF usando Java
Você também pode limitar o acesso do usuário para realizar diferentes operações enquanto criptografa os documentos PDF. A seguir estão as permissões que você pode definir.
- Imprimir Documento – Permite a impressão do documento.
- Modificar Conteúdo – Permite modificação no conteúdo.
- Extrair Conteúdo – Permite copiar o conteúdo do documento.
- Modificar anotações de texto – Permite adicionar ou atualizar anotações de texto.
- Preencher Formulário – Permite o preenchimento dos campos interativos do formulário.
- Extrair Conteúdo com Deficiência – Permite extrair texto e gráficos (para usuários com deficiência).
- Assemble Document – Permite inserir, girar ou excluir páginas e criar marcadores ou imagens em miniatura.
- Qualidade de impressão – Permite a impressão de documentos em alta resolução.
A seguir estão as etapas para definir ou modificar permissões em um documento PDF.
- Carregue o PDF usando a classe Document.
- Use a classe DocumentPrivilege para definir as permissões.
- Criptografe o PDF e salve-o como você fez nos exemplos anteriores.
O exemplo de código a seguir mostra como modificar permissões em um documento PDF usando Java.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
documentPrivilege.setAllowScreenReaders(true);
documentPrivilege.setAllowPrint(true);
document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
document.save("outputFile.pdf");
} finally {
if (document != null)
document.dispose();
}
A seguir estão as permissões no arquivo PDF criptografado.
Conclusão
Neste artigo, você aprendeu como criptografar ou descriptografar arquivos PDF em Java. Além disso, você viu como modificar os privilégios do usuário em um documento PDF programaticamente em Java. Você pode explorar e aprender mais sobre a API Java PDF usando documentação.