Аннотируйте PDF-документы с помощью REST API в PHP

Аннотации предоставляют дополнительную информацию о любой конкретной части документа. Мы можем размечать документы отзывами и рецензиями с помощью аннотаций. Мы можем добавлять изображения, комментарии, заметки или другие типы внешних замечаний к документам PDF в качестве аннотаций. В этой статье мы узнаем, как аннотировать PDF-документы с помощью REST API в PHP.

В этой статье должны быть раскрыты следующие темы:

REST API и PHP SDK для аннотаций PDF

Для аннотирования документов PDF мы будем использовать API PHP SDK of GroupDocs.Annotation Cloud. Это позволяет добавлять аннотации, наложения водяных знаков, замены текста, исправления и текстовые пометки в поддерживаемые форматы документов. Пожалуйста, установите его с помощью следующей команды в консоли:

composer require groupdocscloud/groupdocs-annotation-cloud

После установки используйте autoload Composers, чтобы использовать SDK, как показано ниже:

require_once('vendor/autoload.php');

Пожалуйста, получите свой идентификатор клиента и секрет из панели управления, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

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

// Инициализация конфигурации
$configuration = new GroupDocs\Annotation\Configuration();

// Настройка конфигураций
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

Аннотируйте PDF-документы с помощью REST API в PHP

Мы можем аннотировать PDF-документы в облаке, выполнив простые шаги, указанные ниже:

  1. Загрузить файл PDF в облако
  2. Аннотировать PDF-документ
  3. Скачать аннотированный файл

Загрузить документ

Во-первых, мы загрузим файл PDF в облако, используя следующий пример кода:

// В этом примере кода показано, как загрузить PDF-файл в облако.
// Инициализировать экземпляр API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Путь к файлу
$file = "C:\\Files\\Annotation\\sample.pdf";

// Создать запрос на загрузку файла
$request = new GroupDocs\Annotation\Model\Requests\UploadFileRequest("sample.pdf", $file, self::$MyStorage, null);

// Загрузить файл
$response = $apiInstance->uploadFile($request);

В результате загруженный PDF-файл будет доступен в разделе файлов панели инструментов в облаке.

Аннотировать PDF-документ с помощью PHP

Теперь мы программно добавим несколько аннотаций в загруженный PDF-документ, выполнив следующие шаги:

  • Во-первых, создайте экземпляр AnnotateApi.
  • Затем установите свойства аннотации, например положение, тип, текст и т. д.
  • Затем повторите описанный выше шаг, чтобы добавить несколько аннотаций.
  • Затем укажите путь к входному файлу.
  • Затем инициализируйте объект AnnotateOptions и задайте путь к выходному файлу.
  • После этого создайте AnnotateRequest с AnnotateOptions в качестве аргумента.
  • Наконец, аннотируйте PDF, используя метод AnnotateApi.annotate().

В следующем примере кода показано, как добавить несколько аннотаций в документ PDF с помощью REST API в PHP.

// В этом примере кода показано, как добавить несколько аннотаций в PDF-файл.
// Инициализировать экземпляр AnnotationAPI
$apiInstance = new GroupDocs\Annotation\АннотироватьApi($configuration);

// Добавить аннотацию расстояния
$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.");  

// Добавить аннотацию области
$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.");   

// Добавить аннотацию точки
$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.");  

// Добавить аннотацию со стрелкой
$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.");  

// Путь к входному файлу
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Определить параметры аннотации
$options = new GroupDocs\Annotation\Model\АннотироватьOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a, $a1, $a2, $a3]);
$options->setOutputPath("MultipleAnnotation.pdf");

// Создать запрос на аннотацию
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Аннотировать
$result = $apiInstance->annotate($request);
echo "AddMultipleAnnotations: Multiple Annotations added: " . $result->getHref();
Аннотировать PDF-документ с помощью PHP

Аннотируйте PDF-документ с помощью PHP.

Вы можете узнать больше о поддерживаемых типах аннотаций в разделе добавление аннотаций в документации.

Загрузите аннотированный файл

Приведенный выше пример кода сохранит аннотированный PDF-файл в облаке. Его можно загрузить с помощью следующего примера кода:

// В этом примере кода показано, как загрузить PDF-файл из облака.
// Инициализация экземпляра API
$apiInstance = new GroupDocs\Annotation\FileApi($configuration);

// Создать запрос на скачивание файла
$request = new GroupDocs\Annotation\Model\Requests\DownloadFileRequest("MultipleAnnotation.pdf", self::$MyStorage, null);

// Загрузить файл
$response = $apiInstance->downloadFile($request);

Мы также можем добавить аннотацию гиперссылки в документ PDF, выполнив следующие действия:

  • Во-первых, создайте экземпляр AnnotateApi.
  • Затем установите свойства аннотации, например положение, текст и т. д.
  • Затем установите тип аннотации как Ссылка.
  • Затем укажите путь к входному файлу.
  • Затем инициализируйте объект AnnotateOptions и задайте путь к выходному файлу.
  • После этого создайте AnnotateRequest с AnnotateOptions в качестве аргумента.
  • Наконец, аннотируйте PDF, используя метод AnnotateApi.annotate().

В следующем примере кода показано, как добавить аннотацию гиперссылки в документ PDF с помощью REST API. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить и скачать файл.

// В этом примере кода показано, как добавить аннотацию ссылки в PDF.
// Инициализировать экземпляр AnnotationAPI
$apiInstance = new GroupDocs\Annotation\АннотироватьApi($configuration);

// Добавить аннотацию к ссылке
$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.");   

// Путь к входному файлу
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Определить параметры аннотации
$options = new GroupDocs\Annotation\Model\АннотироватьOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddLinkAnnotation.pdf");

// Создать запрос на аннотацию
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Аннотировать
$result = $apiInstance->annotate($request);
echo "AddLinkAnnotation: Link Annotation added: " . $result->getHref();
Аннотируйте с помощью аннотаций ссылок с помощью PHP.

Аннотируйте с помощью аннотаций ссылок с помощью PHP.

Добавить аннотацию к изображению с помощью PHP

Мы можем добавить аннотацию изображения в документ PDF, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить тип аннотации на изображение, как показано ниже:

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

В следующем примере кода показано, как добавить аннотацию к изображению в документ PDF с помощью REST API в PHP. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить и скачать файл.

// В этом примере кода показано, как добавить аннотацию к изображению в PDF.
// Инициализировать экземпляр AnnotationAPI
$apiInstance = new GroupDocs\Annotation\АннотироватьApi($configuration);

// Добавить аннотацию к изображению
$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.");   

// Путь к входному файлу
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Определить параметры аннотации
$options = new GroupDocs\Annotation\Model\АннотироватьOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddImageAnnotation.pdf");

// Создать запрос на аннотацию
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Аннотировать
$result = $apiInstance->annotate($request);
echo "AddImageAnnotation: Image Annotation added: " . $result->getHref();
Добавьте аннотацию к изображению с помощью PHP.

Добавьте аннотацию к изображению с помощью PHP.

Добавить аннотацию текстового поля с помощью PHP

Мы также можем добавить аннотацию текстового поля в документ PDF, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить тип аннотации в текстовое поле, как показано ниже:

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

В следующем примере кода показано, как добавить аннотацию текстового поля в документ PDF с помощью REST API. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить и скачать файл.

// В этом примере кода показано, как добавить аннотацию текстового поля в PDF.
// Инициализировать экземпляр AnnotationAPI
$apiInstance = new GroupDocs\Annotation\АннотироватьApi($configuration);

// Добавить аннотацию 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.");   

// Путь к входному файлу
$fileInfo = new GroupDocs\Annotation\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// Определить параметры аннотации
$options = new GroupDocs\Annotation\Model\АннотироватьOptions();
$options->setFileInfo($fileInfo);
$options->setAnnotations([$a]);
$options->setOutputPath("AddTextFieldAnnotation.pdf");

// Создать запрос на аннотацию
$request = new GroupDocs\Annotation\Model\Requests\annotateRequest($options);

// Аннотировать
$result = $apiInstance->annotate($request);
echo "AddTextFieldAnnotation: Text Field Annotation added: " . $result->getHref();
Добавьте аннотацию текстового поля с помощью PHP.

Добавьте аннотацию текстового поля с помощью PHP.

Попробуйте онлайн

Попробуйте следующий бесплатный онлайн-инструмент для создания аннотаций PDF, разработанный с использованием указанного выше API. https://products.groupdocs.app/annotation/pdf

Заключение

В этой статье мы узнали, как:

  • добавить несколько аннотаций в PDF с помощью PHP;
  • аннотировать PDF ссылкой, изображением и аннотацией текстового поля в PHP;
  • программно загрузить файл PDF в облако;
  • скачать аннотированный PDF-файл из облака.

Кроме того, вы можете узнать больше о GroupDocs.Annotation Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет вам визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также