Redigir PDF online

Temos um requisito para expurgar detalhes sensíveis de arquivos PDF por causa do sigilo de dados, então geralmente redigimos (removemos texto, imagem, etc.) de uma determinada região de página de um documento PDF. No entanto, ao lidar com um grande conjunto de documentos, precisamos usar APIs para cumprir esse requisito.

Neste artigo, discutiremos as etapas sobre como redigir PDF on-line usando a classe RedactionAnnotation do Aspose.PDF Cloud SDK para Java.

Instalação do SDK

Aspose.PDF Cloud SDK para Java é uma API de programação específica para desenvolvedores Java e é construída sobre a Aspose.PDF Cloud API. Nossas Cloud APIs podem ser usadas de qualquer plataforma sem nenhuma instalação de software específica. No entanto, para usar o SDK, você precisa primeiro instalá-lo sobre o sistema.

O Cloud SDK está disponível para download no Maven e no GitHub. Agora adicione os seguintes detalhes no seu arquivo pom.xml para baixar e usar Aspose.Pdf.jar no seu projeto de build Maven.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Depois que o SDK estiver instalado, a próxima etapa é obter seu ID de cliente personalizado e seu segredo de cliente. Visite Aspose.Cloud dashboard e, se você tiver uma conta GitHub ou Google, basta se inscrever. Caso contrário, clique no botão Create a new Account e forneça as informações necessárias. Agora, faça login no painel usando credenciais e expanda a seção Applications. Role para baixo em direção à seção Client Credentials para ver os detalhes do ID de cliente e do segredo de cliente.

Adicionar anotação de redação usando Java

Na seção abaixo, explicamos as etapas sobre como adicionar uma caixa retangular para eliminar o conteúdo de arquivos PDF usando o Aspose.PDF Cloud SDK para Java.

  • Primeiro, precisamos criar um objeto de PdfApi enquanto passamos os detalhes ClientId e ClientSecret obtidos do painel do Aspose.Cloud.
  • Em segundo lugar, crie um objeto da classe Rectangle para especificar a região na página onde a anotação será adicionada.
  • Em terceiro lugar, selecione o valor Padrão da enumeração AnnotationFlags e adicione-o à Lista do tipo AnnotationFlags.
  • Agora crie uma instância da classe RedactionAnnotation e defina a região retangular usando o método setRect(…).
  • Defina o alinhamento horizontal usando o método setHorizontalAlignment(…) e selecione Centro na enumeração HorizontalAlignment.
  • Para preencher a cor dentro da Anotação, use o método setFillColor(…) e passe o objeto Color.
  • Defina a data da última modificação da anotação usando o método setModified(…).
  • Penúltimo, crie uma Lista do tipo RedactionAnnotation e adicione o objeto RedactAnnotation a esta lista.
  • Por fim, chame o método postPageRedactionAnnotations(…) do PdfApi e passe o nome do arquivo de origem, o número da página onde a anotação precisa ser adicionada. Além disso, passe RedactionAnnotation List como um argumento para iniciar o processo de redação.
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String sourcePDF = "PdfWithTable.pdf";

// página do PDF para colocar Anotação
int pageNumber = 1;

// crie um objeto retângulo para especificar a região de anotação de redação
// a região é calculada a partir do canto inferior esquerdo da página
Rectangle rect = new Rectangle()

// a unidade de medida é o ponto
  .LLX(100.)
  .LLY(700.)
  .URX(200.)
  .URY(600.);

// criar matriz AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();

// defina o AnnotationFlag como padrão
flags.add(AnnotationFlags.DEFAULT);

// criar ArrayList de pontos
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// criar objeto Redact Annotation
RedactionAnnotation annotation = new RedactionAnnotation();

// defina o nome da Anotação. 
// É útil quando temos várias anotações em um documento
annotation.setName("Name");
// defina a região retangular para Redact Annotation
annotation.setRect(rect);
annotation.setFlags(flags);

// definir alinhamento horizontal como central
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// defina o ZIndex como 1. 
annotation.setZindex(1);

// Definir a cor SlateBlue em código Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// especifique a cor de preenchimento para Anotação
annotation.setFillColor(color);

// A data e a hora em que a anotação foi modificada pela última vez.
annotation.setModified("05/21/2021 12:00:00.000 AM");

// Defina uma matriz de 8xN números especificando as coordenadas 
// da região de conteúdo que se pretende remover.
annotation.setQuadPoint(points);
			        
// crie um objeto de lista do tipo RedactAnnotation
List<RedactionAnnotation> annotations = new ArrayList<>();

// adicione o objeto Annotations criado anteriormente ao array RedactAnnotation
annotations.add(annotation);

// adicionar RedactAnnotation ao documento PDF
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());
Documento PDF redigido

Imagem 1:- Anotação de redação adicionada ao arquivo PDF.

Baixe os arquivos de amostra usados no exemplo acima em

Ler Anotações de Redação de Página

O Aspose.PDF Cloud SDK para Java também oferece os recursos para ler as informações sobre a anotação Redact existente no documento PDF. As etapas fornecidas abaixo definem como ler os detalhes da anotação usando Java.

// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String sourcePDF = "PdfWithTable.pdf";

// Obter anotações de redação de documentos
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// imprimir a contagem de anotações disponíveis no documento
System.out.println(responseAnnotations.getAnnotations().getList().size());

Atualizar anotação de redação existente

Se um documento PDF já contiver anotações de Redação, também podemos atualizá-las usando a API. Abaixo estão os detalhes sobre como atualizar anotações existentes em um documento PDF.

  • Crie uma instância de PdfApi passando os detalhes do ID do cliente e do segredo do cliente como argumentos.
  • Crie um objeto Rectangle para definir a região da anotação. Ele é calculado a partir do Bottom-Left do documento e a unidade padrão é Point.
  • Crie uma lista AnnotationFlags e adicione o valor AnnotationFlags.DEFAULT à lista.
  • Agora precisamos criar o objeto RedactionAnnotation e chamar o método setRect(…) para definir a região retangular da anotação.
  • Use o método setModified(…) para definir a data da última modificação da anotação.
  • Chame o método getDocumentRedactionAnnotations(…) da chamada PdfApi para ler a lista de Anotações do documento.
  • Obtenha um objeto de anotação específico usando responseAnnotations.getAnnotations().getList().get(0).getId().
  • Por fim, chame o método putRedactionAnnotation(…) da classe PdfApi para atualizar a Anotação de Redação existente no arquivo PDF.
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String sourcePDF = "PdfWithAnnotations.pdf";	        
			        
// criar região retangular para anotação  
Rectangle rect = new Rectangle()
  .LLX(200.)
  .LLY(120.)
  .URX(150.)
  .URY(100.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));

// criar objeto de anotação de redação
RedactionAnnotation annotation = new RedactionAnnotation();
// definir o nome para anotação
annotation.setName("Name Updated");

// defina a região retangular para anotação
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setZindex(1);
annotation.setModified("01/01/2018 12:02:03.000 AM");
annotation.setQuadPoint(points);

// Definir a cor SlateBlue em código Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);

// especifique a cor de preenchimento para Anotação
annotation.setFillColor(color);

// obter anotação existente do documento
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());

// obter a anotação no índice 0
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();

// atualizar a anotação no índice 0
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());
Anotação de Redação Atualizada

Imagem 2:- Anotação de Redação atualizada.

Os arquivos de recursos usados no exemplo acima podem ser baixados dos seguintes links

conclusão

Neste artigo, discutimos as etapas sobre como redigir informações confidenciais de documentos PDF. Além da anotação Redaction, uma infinidade de outros recursos de anotação são suportados pela API e seus detalhes podem ser encontrados em Working with Annotation. Você pode considerar visitar a Product home page para obter mais informações sobre seus recursos. Caso tenha alguma dúvida relacionada, sinta-se à vontade para entrar em contato via Free Product support forum.