Anotar documentos PDF usando a API REST em PHP

As anotações fornecem informações extras sobre qualquer parte específica do documento. Podemos marcar os documentos com feedback e revisões usando anotações. Podemos adicionar imagens, comentários, notas ou outros tipos de observações externas a documentos PDF como anotações. Neste artigo, aprenderemos como anotar documentos PDF usando uma API REST em PHP.

Os seguintes tópicos serão abordados neste artigo:

API REST de anotação em PDF e PHP SDK

Para anotar documentos PDF, usaremos a API PHP SDK of GroupDocs.Annotation Cloud. Ele permite adicionar anotações, sobreposições de marca d’água, substituições de texto, redações e marcações de texto aos formatos de documento suportados. Instale-o usando o seguinte comando no console:

composer require groupdocscloud/groupdocs-annotation-cloud

Após a instalação, use o autoload dos compositores para usar o SDK conforme mostrado abaixo:

require_once('vendor/autoload.php');

Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

// Este exemplo de código demonstra como adicionar ID e segredo do cliente no código.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// Inicializando a configuração
$configuration = new GroupDocs\Annotation\Configuration();

// Definindo as configurações
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Anotar documentos PDF usando uma API REST em PHP

Podemos anotar documentos PDF na nuvem seguindo as etapas simples abaixo:

  1. Upload o arquivo PDF para a nuvem
  2. Anotar documento PDF
  3. Baixar o arquivo anotado

Carregue o Documento

Em primeiro lugar, faremos o upload do arquivo PDF para a nuvem usando o seguinte exemplo de código:

// Este exemplo de código demonstra como carregar um arquivo PDF para a nuvem.
// Inicializar uma instância da API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Caminho de arquivo
$file = "C:\\Files\\Annotation\\sample.pdf";

// Criar solicitação de upload de arquivo
$request = new GroupDocs\Annotation\Model\Requests\UploadFileRequest("sample.pdf", $file, self::$MyStorage, null);

// Subir arquivo
$response = $apiInstance->uploadFile($request);

Como resultado, o arquivo PDF carregado estará disponível na seção de arquivos do painel na nuvem.

Anotar documento PDF usando PHP

Agora, adicionaremos várias anotações ao documento PDF carregado programaticamente, seguindo as etapas abaixo:

  • Em primeiro lugar, crie uma instância do AnnotateApi.
  • Em seguida, defina as propriedades de anotação, por exemplo, posição, tipo, texto, etc.
  • Em seguida, repita a etapa acima para adicionar várias anotações.
  • Em seguida, forneça o caminho do arquivo de entrada.
  • Em seguida, inicialize o objeto AnnotateOptions e defina o caminho do arquivo de saída.
  • Depois disso, crie o AnnotateRequest com AnnotateOptions como argumento.
  • Finalmente, anote o PDF usando o método AnnotateApi.annotate().

O exemplo de código a seguir mostra como adicionar várias anotações a um documento PDF usando uma API REST em PHP.

// Este exemplo de código demonstra como adicionar várias anotações ao PDF.
// Inicializar a instância da AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Adicionar anotação de distância
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(100);
$box->setY(100);
$box->setWidth(200);
$box->setHeight(100);
$a->setBox($box);
$a->setPageNumber(0);
$a->setPenColor(1201033);
$a->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a->setPenWidth(1);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_DISTANCE);
$a->setText("This is distance annotation");
$a->setCreatorName("Anonym A.");  

// Adicionar anotação de área
$a1 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt1 = new GroupDocs\Annotation\Model\Point();
$pt1->setX(1);
$pt1->setY(1);
$a1->setAnnotationPosition($pt1);
$box1 = new GroupDocs\Annotation\Model\Rectangle();
$box1->setX(80);
$box1->setY(400);
$box1->setWidth(200);
$box1->setHeight(100);
$a1->setBox($box1);
$a1->setPageNumber(0);
$a1->setPenColor(1201033);
$a1->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a1->setPenWidth(1);
$a1->setOpacity(0.7);
$a1->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_AREA);
$a1->setText("This is area annotation");
$a1->setCreatorName("Anonym A.");   

// Adicionar anotação de ponto
$a2 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt2 = new GroupDocs\Annotation\Model\Point();
$pt2->setX(100);
$pt2->setY(100);
$a2->setAnnotationPosition($pt2);
$box2 = new GroupDocs\Annotation\Model\Rectangle();
$box2->setX(450);
$box2->setY(150);
$box2->setWidth(100);
$box2->setHeight(30);
$a2->setBox($box2);
$a2->setPageNumber(0);
$a2->setOpacity(0.7);
$a2->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_POINT);
$a2->setText("This is point annotation");
$a2->setCreatorName("Anonym A.");  

// Adicionar anotação de seta
$a3 = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt3 = new GroupDocs\Annotation\Model\Point();
$pt3->setX(1);
$pt3->setY(1);
$a3->setAnnotationPosition($pt3);
$box3 = new GroupDocs\Annotation\Model\Rectangle();
$box3->setX(350);
$box3->setY(350);
$box3->setWidth(200);
$box3->setHeight(100);
$a3->setBox($box3);
$a3->setPageNumber(0);
$a3->setPenColor(1201033);
$a3->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a3->setPenWidth(1);
$a3->setOpacity(0.7);
$a3->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_ARROW);
$a3->setText("This is arrow annotation");
$a3->setCreatorName("Anonym A.");  

// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opções de anotação
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a, $a1, $a2, $a3]);
$options->setOutputPath("MultipleAnnotation.pdf");

// Criar solicitação de anotação
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddMultipleAnnotations: Multiple Annotations added: " . $result->getHref();
Anotar documento PDF usando PHP

Anotar documento PDF usando PHP.

Você pode ler mais sobre os tipos de anotação suportados na seção adicionando anotações na documentação.

Baixe o arquivo anotado

O exemplo de código acima salvará o arquivo PDF anotado na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:

// Este exemplo de código demonstra como baixar um arquivo PDF da nuvem.
// Inicializando uma instância da API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Criar solicitação de arquivo de download
$request = new GroupDocs\Annotation\Model\Requests\DownloadFileRequest("MultipleAnnotation.pdf", self::$MyStorage, null);

// ⇬ Fazer download do arquivo
$response = $apiInstance->downloadFile($request);

Também podemos adicionar anotação de hiperlink no documento PDF seguindo as etapas abaixo:

  • Em primeiro lugar, crie uma instância do AnnotateApi.
  • Em seguida, defina as propriedades de anotação, por exemplo, posição, texto, etc.
  • Em seguida, defina o tipo de anotação como Link.
  • Em seguida, forneça o caminho do arquivo de entrada.
  • Em seguida, inicialize o objeto AnnotateOptions e defina o caminho do arquivo de saída.
  • Depois disso, crie o AnnotateRequest com AnnotateOptions como argumento.
  • Finalmente, anote o PDF usando o método AnnotateApi.annotate().

O exemplo de código a seguir mostra como adicionar anotação de hiperlink no documento PDF usando uma API REST. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.

// Este exemplo de código demonstra como adicionar anotação de link ao PDF
// Inicializar a instância da AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Adicionar anotação de link
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt1 = new GroupDocs\Annotation\Model\Point();
$pt1->setX(80);
$pt1->setY(710);
$pt2 = new GroupDocs\Annotation\Model\Point();
$pt2->setX(240);
$pt2->setY(710);		
$pt3 = new GroupDocs\Annotation\Model\Point();
$pt3->setX(80);
$pt3->setY(650);		
$pt4 = new GroupDocs\Annotation\Model\Point();
$pt4->setX(240);
$pt4->setY(650);		
$a->setPoints([$pt1, $pt2, $pt3, $pt4]);
$a->setUrl("https://www.groupdocs.com/");
$a->setPageNumber(0);
$a->setFontColor(1201033);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_LINK);
$a->setText("This is link annotation");
$a->setCreatorName("Anonym A.");   

// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opções de anotação
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddLinkAnnotation.pdf");

// Criar solicitação de anotação
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddLinkAnnotation: Link Annotation added: " . $result->getHref();
Anotar com anotações de link usando PHP.

Anotar com anotações de link usando PHP.

Adicionar anotação de imagem usando PHP

Podemos adicionar anotações de imagem no documento PDF seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir o tipo de anotação para imagem, conforme mostrado abaixo:

$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_IMAGE);

O exemplo de código a seguir mostra como adicionar anotação de imagem no documento PDF usando uma API REST em PHP. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.

// Este exemplo de código demonstra como adicionar anotação de imagem ao PDF
// Inicializar a instância da AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Adicionar anotação de imagem
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(200);
$box->setY(0);
$box->setWidth(200);
$box->setHeight(100);
$a->setBox($box);
$a->setPageNumber(0);
$a->setImagePath("groupdocs.png");
$a->setPenStyle(GroupDocs\Annotation\Model\AnnotationInfo::PEN_STYLE_SOLID);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_IMAGE);
$a->setText("This is image annotation");
$a->setCreatorName("Anonym A.");   

// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opções de anotação
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddImageAnnotation.pdf");

// Criar solicitação de anotação
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddImageAnnotation: Image Annotation added: " . $result->getHref();
Adicionar anotação de imagem usando PHP.

Adicionar anotação de imagem usando PHP.

Adicionar anotação de campo de texto usando PHP

Também podemos adicionar anotação de campo de texto no documento PDF seguindo as etapas mencionadas anteriormente. No entanto, só precisamos definir o tipo de anotação para o campo de texto, conforme mostrado abaixo:

$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_TEXT_FIELD);

O exemplo de código a seguir mostra como adicionar anotação de campo de texto no documento PDF usando uma API REST. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.

// Este exemplo de código demonstra como adicionar anotação de campo de texto ao PDF
// Inicializar a instância da AnnotationAPI
$apiInstance = new GroupDocs\Annotation\AnotarApi($configuration);

// Adicionar anotação TextField
$a = new GroupDocs\Annotation\Model\AnnotationInfo();
$pt = new GroupDocs\Annotation\Model\Point();
$pt->setX(1);
$pt->setY(1);
$a->setAnnotationPosition($pt);
$box = new GroupDocs\Annotation\Model\Rectangle();
$box->setX(380);
$box->setY(300);
$box->setWidth(100);
$box->setHeight(50);
$a->setBox($box);
$a->setPageNumber(0);
$a->setFontColor(1201033);
$a->setFontSize(12);
$a->setOpacity(0.7);
$a->setType(GroupDocs\Annotation\Model\AnnotationInfo::TYPE_TEXT_FIELD);
$a->setText("Text field text");
$a->setCreatorName("Anonym A.");   

// Caminho do arquivo de entrada
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Definir opções de anotação
$options = new GroupDocs\Annotation\Model\AnotarOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddTextFieldAnnotation.pdf");

// Criar solicitação de anotação
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Anotar
$result = $apiInstance->annotate($request);
echo "AddTextFieldAnnotation: Text Field Annotation added: " . $result->getHref();
Adicionar anotação de campo de texto usando PHP.

Adicionar anotação de campo de texto usando PHP.

Experimente on-line

Experimente a seguinte ferramenta de anotação de PDF on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/annotation/pdf

Conclusão

Neste artigo, aprendemos como:

  • adicionar várias anotações a um PDF usando PHP;
  • anotar PDF com link, imagem e anotação de campo de texto em PHP;
  • carregar programaticamente o arquivo PDF para a nuvem;
  • baixe o arquivo PDF anotado da nuvem.

Além disso, você pode aprender mais sobre GroupDocs.Annotation Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também