Houve um tempo em que costumávamos discutir o conteúdo do documento e o feedback em longos tópicos de e-mail com vários anexos e diferentes versões de arquivo. Agora podemos simplesmente usar anotações para marcar o documento com mensagens e respostas e enviá-lo. Neste artigo, você aprenderá a anotar documentos PDF programaticamente em Java com seu aplicativo. Além disso, veremos como remover anotações de arquivos PDF usando a mesma API Java.

A seguir estão os tópicos discutidos brevemente abaixo:

API Java do Anotador de PDF

Para lidar com anotações de seu documento e imagens em seus aplicativos Java, o GroupDocs fornece GroupDocs.Annotation for Java. Usando a API, você pode adicionar, remover e extrair anotações de documentos de processamento de texto, planilhas, apresentações, imagens, mensagens de e-mail, Visio * desenhos*, alguns AutoCAD e formatos de imagem digital como DICOM. Além disso, a API permite anotar arquivos PDF. Você pode dar uma olhada na documentação para saber sobre a longa lista de formatos de documento suportados para anotação.

Baixe e configure

Obtenha a biblioteca de anotações a partir de downloads ou apenas adicione a seguinte configuração pom.xml em seus aplicativos Java baseados em Maven para experimentar os exemplos deste artigo, bem como os muitos outros exemplos disponíveis no GitHub. Para mais detalhes, você pode visitar a Referência da API.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-annotation</artifactId>
        <version>20.2</version> 
</dependency>

Adicionar anotações ao PDF em Java

Vamos pular rapidamente para adicionar alguns dos diferentes tipos de anotações ao documento PDF. Como existem muitos tipos diferentes de anotação, talvez não abordemos tudo neste artigo. Vou apenas mencioná-los, e você pode aprender sobre cada anotação individualmente.

  • Anotação de área / retângulo

  • Flecha

  • Distância

  • Elipse

  • Realçar

  • Link

  • Ponto

  • Polilinha

  • Substituição

  • Redação de recursos

  • Greve

  • Campo de texto

  • Redação de texto

  • Sublinhado

  • Marca d’água

Vamos começar a adicionar alguns deles em um documento PDF.

Adicionar anotação de seta ao PDF usando Java

A seguir estão as etapas para adicionar anotação de seta a um documento PDF.

Anotação de seta
  • Carregue o documento PDF usando a classe Annotator.
  • Inicialize a anotação de seta usando a classe ArrowAnnotation.
  • Defina a posição e o tamanho da seta usando o método setBox de ArrowAnnotation.
  • Adicione a anotação de seta criada ao objeto Anotador.
  • Salve o PDF anotado fornecendo o caminho usando o método save.

O exemplo de código a seguir mostra como adicionar anotação de seta a um documento PDF usando Java.

// Adicionar anotação de seta ao PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(100, 100, 100, 100)); // (x, y, width, height)
annotator.add(arrow);
annotator.save("path/annotated-with-arrow.pdf");

Inserir anotação de retângulo ou área em PDF usando Java

Você pode personalizar qualquer anotação ao adicioná-la ao documento. A seguir estão as etapas para adicionar anotação de retângulo ou área a um documento PDF com um pouco mais de personalizações. É semelhante a adicionar a anotação de seta, mas usa a classe AreaAnnotation no lugar de ArrowAnnotation.

  • Carregue o documento PDF usando a classe Annotator.
  • Inicialize a anotação do retângulo usando a classe AreaAnnotation.
  • Defina a posição e o tamanho do retângulo usando o método setBox de AreaAnnotation.
  • Defina outras propriedades, como cor, plano de fundo, opacidade, estilo, largura da caneta ou até mensagens e hora .
  • Adicione a anotação de retângulo criada ao objeto Anotador.
  • Salve o PDF anotado fornecendo o caminho usando o método save.
Anotação de retângulo ou área

O exemplo de código a seguir mostra como adicionar anotação de retângulo/área a um documento PDF usando Java.

// Adicionar anotação de área ou anotação de retângulo ao PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
// adicionar ao documento
annotator.add(area);
annotator.save("path/annotated-with-rectangle.pdf");

Adicionar anotação oval ou elipse ao PDF usando Java

A seguir estão as etapas para adicionar anotação oval ou anotação de elipse a um documento PDF.

Elipses ou Anotação Oval
  • Carregue o documento PDF usando a classe Annotator.
  • Inicialize a anotação de elipse usando a classe EllipseAnnotation.
  • Defina a posição e o tamanho da elipse usando o método setBox de EllipseAnnotation.
  • Adicione a anotação de elipse criada ao objeto Annotator.
  • Salve o PDF anotado fornecendo o caminho usando o método save.

O exemplo de código a seguir mostra como adicionar anotação oval ou elipse a um documento PDF usando Java.

// Adicionar anotação oval ou elipse em PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
// Anotação oval ou elipse
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
// adicionar ao documento
annotator.add(area);
annotator.save("path/annotated-with-ellipse.pdf");

Inserir anotação de distância em PDF usando Java

Anotação de distância

Você também pode adicionar a anotação de distância para mostrar a distância entre dois pontos. A seguir estão as etapas para adicionar anotação de distância ao documento PDF.

  • Carregue o documento PDF usando a classe Annotator.
  • Inicialize a anotação de distância usando a classe DistanceAnnotation.
  • Defina o tamanho e a posição da anotação usando o método setBox de DistanceAnnotation.
  • Adicione a anotação de distância criada ao objeto Anotador.
  • Salve o PDF anotado fornecendo o caminho usando o método save.

O exemplo de código a seguir mostra como adicionar anotação de distância a um documento PDF usando Java.

// Anotação de distância usando Java
final Annotator annotator = new Annotator("document.pdf");
// Anotação de distância
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
// adicionar ao documento
annotator.add(area);
annotator.save("path/annotated-with-distance.pdf");

Código completo

Para resumir, aqui está o código Java com a saída mostrando todas as anotações e mensagens adicionadas com respostas usando o código Java mencionado.

Anotações adicionadas ao PDF

O código a seguir adiciona seta, retângulo, elipse, anotações de distância, mensagens e respostas a um arquivo PDF.

// Adicione várias anotações ao PDF usando Java
// Adicionando anotações de seta, área, oval (elipse), distância ao PDF com mensagens e respostas usando Java
final Annotator annotator = new Annotator(Constants.INPUT);
// Definindo respostas
Reply reply1 = new Reply();
reply1.setComment("Please look in to these issues.");
reply1.setRepliedOn(Calendar.getInstance().getTime());

Reply reply2 = new Reply();
reply2.setComment("Change Description");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply3 = new Reply();
reply2.setComment("On-Premises APIs");
reply2.setRepliedOn(Calendar.getInstance().getTime());

Reply reply4 = new Reply();
reply2.setComment("Add images as well.");
reply2.setRepliedOn(Calendar.getInstance().getTime());

java.util.List<Reply> replies = new ArrayList<Reply>();
replies.add(reply1);
replies.add(reply2);
replies.add(reply3);
replies.add(reply4);
// Anotação de seta =================================
ArrowAnnotation arrow = new ArrowAnnotation();
arrow.setBox(new Rectangle(560, 250, 60, -60));
arrow.setCreatedOn(Calendar.getInstance().getTime());
arrow.setMessage("This image is little upwards.");
arrow.setOpacity(0.7);
arrow.setPenColor(-3407872);
arrow.setPenWidth((byte) 2);
arrow.setReplies(replies.subList(0, 1));
// Anotação de área ===================================
AreaAnnotation area = new AreaAnnotation();
area.setBox(new Rectangle(50, 100, 500, 100));
area.setCreatedOn(Calendar.getInstance().getTime());
area.setMessage("Annotate documents and images.");
area.setOpacity(0.7);
area.setPenColor(-13076963);
area.setPenStyle(PenStyle.Dash);
area.setPenWidth((byte) 3);
area.setReplies(replies.subList(1, 2));
// Anotação Oval ou Elipse =========================
EllipseAnnotation ellipse = new EllipseAnnotation();
ellipse.setBox(new Rectangle(275, 505, 300, 80));
ellipse.setCreatedOn(Calendar.getInstance().getTime());
ellipse.setMessage("Shows all the available Annotation APIs.");
ellipse.setOpacity(0.7);
ellipse.setPenColor(-16034924);
ellipse.setPenStyle(PenStyle.Dot);
ellipse.setPenWidth((byte) 3);
ellipse.setReplies(replies.subList(2, 3));
// Anotação de distância ================================
DistanceAnnotation distance = new DistanceAnnotation();
distance.setBox(new Rectangle(775, 235, 0, 150));
distance.setCreatedOn(Calendar.getInstance().getTime());
distance.setMessage("This is the heading area");
distance.setOpacity(0.7);
distance.setPenColor(-21197);
distance.setPenStyle(PenStyle.Solid);
distance.setPenWidth((byte) 1);
distance.setReplies(replies.subList(3, 4));
// Adicionando anotações =================================
annotator.add(arrow);
annotator.add(area);
annotator.add(ellipse);
annotator.add(distance);
// Salvando PDF anotado ===============================
annotator.save(outputPath);
annotator.dispose();

Remover anotações de PDF em Java

As etapas a seguir mostram como remover todas as anotações de arquivos PDF em Java.

  • Carregue o documento PDF usando a classe Annotator.
  • Inicialize as opções de salvamento usando a classe SaveOptions.
  • Defina os tipos de anotação para Nenhum.
  • Salve o arquivo PDF com todas as anotações removidas, fornecendo o caminho usando o método save.

O código Java a seguir remove anotações de um arquivo PDF.

// Remova todas as anotações do documento PDF usando Java
final Annotator annotator = new Annotator("document.pdf");
SaveOptions saveOptions = new SaveOptions();
saveOptions.setAnnotationTypes(AnnotationType.None);
// Salve o PDF sem mais anotações nele.
annotator.save("path/annotations-removed.pdf", saveOptions);
annotator.dispose();

Conclusão

Resumindo, você aprendeu como adicionar anotações ao PDF em aplicativos Java. Além disso, você viu como remover todas as anotações de qualquer arquivo PDF. Agora, você deve estar confiante para construir seu próprio aplicativo Java anotador de documentos. Ele pode suportar diferentes tipos de anotações usando GroupDocs.Annotation for Java.

Para mais detalhes, opções e exemplos, você pode visitar o repositório documentation e GitHub. Para mais dúvidas, entre em contato com o suporte no fórum.

Veja também