
O conteúdo dentro de uma página PDF é difícil de editar, mas a especificação PDF define um conjunto completo de objetos que podem ser adicionados a páginas PDF sem alterar o conteúdo da página. Esses objetos são chamados de anotações, e sua finalidade varia de marcar o conteúdo da página até implementar recursos interativos, como formulários.
A maioria dos visualizadores PDF permite a criação e edição de vários tipos de anotações, por exemplo, destaques de texto, notas, linhas ou formas, e independentemente dos tipos de anotações criados, os visualizadores PDF em conformidade com a especificação PDF também devem oferecer suporte à renderização para todos os tipos de anotações. No entanto, ao lidar com um grande conjunto de documentos, o processo manual de adicionar anotações se torna trabalhoso e, portanto, uma API de programação é uma solução viável. Discutiremos mais adiante o uso do Aspose.PDF Cloud SDK para Java para adicionar anotações a documentos PDF.
- Instalação do SDK
- Riscar texto usando Java
- Adicionar anotação de destaque
- Como adicionar Anotação de Linha
- Adicionando Anotação de Círculo em PDF
Instalação do SDK
Aspose.PDF Cloud SDK para Java é uma API de programação que permite que programadores Java criem, manipulem e transformem documentos PDF existentes em outros formatos de documentos suportados. 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 construção 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>
Para obter mais informações, visite Como instalar os SDKs do Aspose.Cloud.
Além disso, observe que, para garantir a privacidade do usuário e a integridade dos dados, todas as nossas APIs são acessíveis apenas a pessoas autorizadas. Portanto, você precisa primeiro visitar Aspose.Cloud dashboard e, se 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 do painel e role para baixo em direção à seção Client Credentials para ver os detalhes do Client ID e do Client Secret.
Riscar texto usando Java
Às vezes, temos um requisito para marcar determinado conteúdo dentro do documento como obsoleto sem removê-lo do documento. O tachado (também conhecido como strikeout) é representado por palavras com uma linha horizontal no centro. Isso implica que o texto está errado ou obsoleto e foi recentemente excluído ou marcado como tal. Podemos definir as configurações das anotações tachadas usando a propriedade strikethroughSettings. A propriedade strikethroughSettings é usada para definir as propriedades de cor, opacidade, autor, assunto, modifiedDate e isLocked das anotações tachadas.
// 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";
int pageNumber = 1;
// criar região retangular para anotação
Rectangle rect = new Rectangle()
.LLX(200.)
.LLY(380.)
.URX(250.)
.URY(375.);
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.)); // Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));
StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());
Adicionar anotação de destaque
Destacar o conteúdo dentro do PDF é essencial porque nos permite chamar a atenção para informações importantes dentro do documento. O destaque é eficaz porque primeiro pede ao leitor para escolher as partes importantes e, em seguida, fornece uma maneira eficaz de revisar essas informações mais tarde. Nossa API de nuvem fornece os recursos para destacar o conteúdo dentro de documentos PDF. Abaixo estão as etapas para adicionar anotações de destaque em um arquivo PDF.
- Primeiro, crie uma instância de PdfApi fornecendo detalhes de ClientSecret e ClientId.
- Criamos uma instância de arquivo para carregar um arquivo PDF do sistema local e, em seguida, chamamos o método uploadFile(…) da classe PdfApi para enviar o documento para o armazenamento em nuvem.
- Agora crie uma instância da classe Rectangle para especificar a região retangular onde a anotação pode ser adicionada.
- Em seguida, crie um ArrayList do tipo Point para armazenar as informações sobre os pontos para desenhar o HighlightAnnotation.
- Crie um objeto da classe HighlightAnnotation e defina Nome, Região retangular, Assunto, Título, QuadPoints, Data de modificação da anotação.
- O próximo passo é criar uma lista do tipo HighlightAnnotation e adicionar o objeto HighlightAnnotation criado acima a essa lista.
- Por fim, chame o método postPageHighlightAnnotations(…) da classe PdfApi e passe o PDF de origem, o número da página e a lista de anotações como argumentos.

Imagem 1:- Destacar anotação no arquivo PDF.
Você pode baixar os arquivos de amostra usados no exemplo acima nos seguintes links
Como adicionar Anotação de Linha
Semelhante à adição de anotações de strikeout e destaque, a API também permite que você adicione Anotações de Linha em documentos PDF. Temos uma classe chamada LineAnnotation para cumprir esse requisito. Abaixo estão mais detalhes sobre como cumprir esse requisito.
- Primeiro, crie uma instância de PdfApi fornecendo detalhes de ClientSecret e ClientId.
- Opcionalmente, criamos uma instância File para carregar um arquivo PDF do sistema local e então chamamos o método uploadFile(…) da classe PdfApi para carregar o documento para o armazenamento em nuvem. Caso o arquivo já esteja disponível no armazenamento em nuvem, podemos usá-lo.
- O restante das propriedades de inicialização do objeto são as mesmas mencionadas acima para HighlithAnnotation, exceto que precisamos criar um objeto da classe LineAnnotation e definir os pontos inicial e final de uma linha usando os métodos setStarting(…) e setEnding(…).
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String sourcePDF = "PdfWithTable.pdf";
// Carregue o arquivo do sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// carregue o arquivo para o armazenamento em nuvem
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// número da página onde a anotação será adicionada
int pageNumber = 1;
// criar região retangular para anotação
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(500.)
.URX(400.)
.URY(510.);
// criar objeto List do tipo AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Criar objeto Anotações de Linha
LineAnnotation annotation = new LineAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// definir o ponto inicial da linha
annotation.setStarting(new Point().X(100.).Y(100.));
// definir o ponto final da linha
annotation.setEnding(new Point().X(20.).Y(680.));
// criar instância de cor para staleblue
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// definir cor de anotação
annotation.interiorColor(color);
// definir data de modificação da anotação
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Criar instância de lista de anotações de linha
List<LineAnnotation> annotations = new ArrayList<>();
// adicionar objeto LineAnnotation à lista de anotações de linha
annotations.add(annotation);
// chamar método API para adicionar anotação de linha ao arquivo PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);
Adicionar anotação de círculo em PDF
Anotações de círculo também são comumente usadas dentro de documentos PDF e a API suporta muito bem esse tipo de anotação. Para adicionar anotações de círculo, tente usar a classe CircleAnnotation. O código especificado abaixo pode ser usado para atender a esse requisito.
// Obtenha ClientID e ClientSecret de https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// instância createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// documento PDF de entrada
String sourcePDF = "PdfWithTable.pdf";
// Carregue o arquivo do sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// carregue o arquivo para o armazenamento em nuvem
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// número da página onde a anotação será adicionada
int pageNumber = 1;
// criar região retangular para anotação
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(700.)
.URX(300.)
.URY(500.);
// criar objeto List do tipo AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Criar objeto Anotações de Destaque
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// criar instância de cor para staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// definir cor de anotação
annotation.interiorColor(color);
// definir data de modificação da anotação
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Criar instância de lista de anotações de destaque
List<CircleAnnotation> annotations = new ArrayList<>();
// adicionar objeto CircleAnnotation à lista de anotações do círculo
annotations.add(annotation);
// chamar método API para adicionar anotação de círculo ao arquivo PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);

Imagem 2:- Anotação de círculo em arquivo PDF.
O documento PDF de entrada e o PDF resultante, conforme mostrado acima, podem ser baixados dos seguintes links:
Dica rápida
Use nosso Aplicativo de Anotação em PDF online gratuito para remover todas as anotações do seu PDF com um clique.
Conclusão
Neste blog, discutimos vários tipos de Anotações atualmente suportados pelo Aspose.PDF Cloud SDK para Java. Além das Anotações, a API suporta uma infinidade de outros recursos interessantes relacionados ao formato PDF. Para mais informações, recomendamos que você explore mais o Guia do Desenvolvedor.
Por favor, esteja ciente de que sempre nos esforçamos para atender os clientes da melhor maneira possível e reconhecemos seus comentários e sugestões. Então, caso você encontre algum problema ao usar a API ou tenha alguma dúvida relacionada, sinta-se à vontade para entrar em contato conosco através do nosso Fórum de Suporte Gratuito.
Artigos relacionados
Recomendamos fortemente que você visite os seguintes links para saber mais sobre: