Como adicionar anotações a um PDF

Como adicionar anotações a um PDF

Você adiciona anotações de texto em um arquivo PDF para resumir o conteúdo escrito nos documentos e observar os pontos críticos e outros detalhes. No entanto, você pode adicionar anotações de texto em qualquer lugar do documento e, uma vez criado, ele aparece como um pop-up e como um ícone quando é fechado. Nesta postagem do blog, você aprenderá como adicionar anotações a um arquivo PDF usando esta Java API para PDF. Além disso, você passará pelos métodos que ajudam a adicionar anotações de texto em um arquivo programaticamente.

Os seguintes pontos serão abordados neste guia:

API Java para PDF - instalação

O procedimento de instalação desta biblioteca está a apenas um passo de distância. você pode baixar a API 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>
    <classifier>jdk17</classifier>
</dependency>

Como adicionar anotações a um PDF

Agora, você pode aproveitar os métodos desta biblioteca PDF para implementar a adição de anotação de texto a um arquivo PDF programaticamente.

Por favor, siga o trecho de código e as etapas mencionadas abaixo:

  1. Instancie uma instância da classe Document e carregue o arquivo PDF de origem.
  2. Obtenha uma página por índice invocando o método getItem.
  3. Inicialize um objeto da classe Rectangle que representa um retângulo.
  4. Crie uma nova anotação de texto na página especificada criando um objeto da classe TextAnnotation.
  5. O método setTitle define um texto que deve ser exibido na barra de título da anotação.
  6. O método setSubject define o texto que representa a descrição do objeto.
  7. O método setContents define o texto da anotação.
  8. Instancie o construtor do objeto Border com o objeto textAnnotation.
  9. Defina a largura da borda e do padrão de traço chamando os métodos setWidth e setDash.
  10. Invoque o método add que adiciona uma anotação à coleção.
  11. O método save salvará o arquivo de anotação.

Copie e cole o seguinte código em seu arquivo principal:

// Instancie uma instância da classe Document e carregue o arquivo PDF de origem.
Document document = new Document(  "table.pdf");
// Obtenha uma página por índice invocando o método get_Item 
Page page = document.getPages().get_Item(1);
// Inicialize um objeto da classe Rectangle que representa o retângulo.
Rectangle rect = new Rectangle(200, 750, 400, 790);
// Crie uma nova anotação Text na página especificada criando um objeto da classe TextAnnotation. 
TextAnnotation textAnnotation = new TextAnnotation(page, rect);
// setTitle define um texto que deve ser exibido na barra de título da anotação. 
textAnnotation.setTitle("Aspose User");
// setSubject define o texto que representa a descrição do objeto. 
textAnnotation.setSubject("Sample Subject");
// O método setContents define o texto da anotação. 
textAnnotation.setContents("Sample contents for the annotation");
textAnnotation.setOpen(true);
textAnnotation.setIcon(TextIcon.Circle);
// Instancie o construtor do objeto de borda com o objeto textAnnotation. 
Border border = new Border(textAnnotation);
// Defina a largura da borda e do padrão de traço chamando o método setWidth e setDash.  
border.setWidth(5);
border.setDash(new Dash(1, 1));
textAnnotation.setBorder(border);
textAnnotation.setRect(rect);
// Invoque o método add que adiciona anotação à coleção. 
page.getAnnotations().add(textAnnotation);
// save irá salvar o arquivo de anotação. 
document.save(  "sample_textannot.pdf");

Você pode ver a saída na imagem abaixo:

anotação de texto

Ler anotações de texto

Da mesma forma, podemos ler as anotações de texto de um arquivo PDF existente seguindo as etapas mencionadas abaixo:

  1. Crie uma instância da classe Document e carregue o arquivo PDF de origem.
  2. Chame o método getItem para obter uma página por índice.
  3. Filtre anotações usando AnnotationSelector.
  4. Invoque o método accept para aceitar que o visitante processe a anotação.
  5. Chame o método getSelected para obter a lista de objetos de anotação selecionados.
  6. Imprima os resultados.

Copie e cole o seguinte código em seu arquivo principal:

// crie uma instância da classe Document e carregue o arquivo PDF de origem. 
Document document = new Document(  "sample_textannot.pdf");
// Chame o método get_Item para obter uma página por índice invocando o   
Page page = document.getPages().get_Item(1);
// Filtrar anotações usando AnnotationSelector 
AnnotationSelector annotationSelector = new AnnotationSelector(
        new TextAnnotation(page, Rectangle.getTrivial()));
// Invoque o método accept para aceitar o visitante para processar a anotação. 
page.accept(annotationSelector);
//  Chame o método getSelected para obter a lista de objetos de anotação selecionados. 
List<Annotation> TextAnnotations = annotationSelector.getSelected();
// imprima os resultados
for (Annotation fa : TextAnnotations) {
    System.out.println(fa.getRect());
}

Excluir anotações de texto

Além disso, você pode seguir as etapas e o snippet de código para excluir as anotações de texto programaticamente:

  1. Crie um objeto da classe Document e carregue o arquivo PDF de origem.
  2. Filtre anotações usando AnnotationSelector.
  3. Aceite o visitante para processar a anotação chamando o método accept.
  4. Chame o método getSelected para obter a lista de objetos de anotação selecionados.
  5. Percorra todas as anotações de texto e exclua anotações chamando o método delete.
  6. Invoque o método save para salvar o arquivo.

Copie e cole o seguinte código em seu arquivo principal:

// Crie um objeto da classe Document e carregue o arquivo PDF de origem. 
Document document = new Document(  "sample_textannot.pdf");
// Filtrar anotações usando AnnotationSelector 
Page page = document.getPages().get_Item(1);
AnnotationSelector annotationSelector = new AnnotationSelector(
        new TextAnnotation(page, Rectangle.getTrivial()));
// Aceita o visitante para processar a anotação chamando o método accept 
page.accept(annotationSelector);
// Chame o método getSelected para obter a lista de objetos de anotação selecionados. 
List<Annotation> TextAnnotations = annotationSelector.getSelected();
// percorrer todas as anotações de texto
for (Annotation fa : TextAnnotations) {
    // Excluir anotação chamando o método delete 
}
// Invoque o método save para salvar o arquivo 
document.save ( "sample_textannot_del.pdf");

Obtenha uma licença gratuita

Você pode aproveitar uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Resumindo

Isso nos leva ao final desta postagem no blog. Você aprendeu como adicionar anotações em um arquivo PDF programaticamente. Além disso, você também aprendeu a ler e excluir anotações de texto de documentos PDF existentes usando esta API Java para PDF. Além disso, você pode visitar a documentação para explorar melhor os métodos da API.

Além disso, sugerimos que você siga nosso Guia de primeiros passos.

Finalmente, conholdate.com está escrevendo novas postagens no blog. Portanto, por favor, fique em contato para atualizações regulares.

Faça uma pergunta

Você pode nos informar sobre suas perguntas ou dúvidas em nosso fórum.

Perguntas frequentes

Posso anotar um PDF gratuitamente?

Visite este link para conhecer o snippet de código e os métodos de API expostos pelo Java API para PDF.

Veja também