在 PHP 中使用 REST API 注释 PDF 文档

注释提供有关文档任何特定部分的额外信息。我们可以使用注释标记带有反馈和评论的文档。我们可以在 PDF 文档中添加图片、注释、注释或其他类型的外部注释作为注释。在本文中,我们将学习如何在 PHP 中使用 REST API 来注释 PDF 文档。

本文应涵盖以下主题:

PDF 注释 REST API 和 PHP SDK

为了注释 PDF 文档,我们将使用 GroupDocs.Annotation Cloud 的 PHP SDK API。它允许向 支持的文档格式 添加注释、水印叠加、文本替换、密文和文本标记。请在控制台中使用以下命令安装它:

composer require groupdocscloud/groupdocs-annotation-cloud

安装后,请使用Composers的autoload来使用SDK,如下图:

require_once('vendor/autoload.php');

在执行上述步骤之前,请从仪表板获取您的客户端 ID 和密码。获得 ID 和密码后,添加如下所示的代码:

// 此代码示例演示如何在代码中添加客户端 ID 和密码。
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);

在 PHP 中使用 REST API 注释 PDF 文档

我们可以按照下面给出的简单步骤对云端的 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 文件将在云端仪表板的 文件部分 中可用。

使用 PHP 注释 PDF 文档

现在,我们将按照以下步骤以编程方式向上传的 PDF 文档添加多个注释:

  • 首先,创建 AnnotateApi 的实例。
  • 接下来,设置注释属性,例如位置、类型、文本等。
  • 然后,重复上述步骤添加多个注释。
  • 接下来,提供输入文件路径。
  • 然后,初始化 AnnotateOptions 对象并设置输出文件路径。
  • 之后,使用 AnnotateOptions 作为参数创建 AnnotateRequest。
  • 最后,使用 AnnotateApi.annotate() 方法对 PDF 进行注释。

以下代码示例显示了如何在 PHP 中使用 REST API 向 PDF 文档添加多个注释。

// 此代码示例演示如何向 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();
使用 PHP 注释 PDF 文档

使用 PHP 注释 PDF 文档。

您可以在文档的 adding annotations 部分阅读有关支持的注释类型的更多信息。

下载注释文件

上面的代码示例会将带注释的 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 对象并设置输出文件路径。
  • 之后,使用 AnnotateOptions 作为参数创建 AnnotateRequest。
  • 最后,使用 AnnotateApi.annotate() 方法对 PDF 进行注释。

以下代码示例显示了如何使用 REST API 在 PDF 文档中添加超链接注释。请按照前面提到的步骤上传和下载文件。

// 此代码示例演示如何向 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);

以下代码示例显示了如何使用 PHP 中的 REST API 在 PDF 文档中添加图像注释。请按照前面提到的步骤上传和下载文件。

// 此代码示例演示如何向 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);

以下代码示例显示了如何使用 REST API 在 PDF 文档中添加文本字段注释。请按照前面提到的步骤上传和下载文件。

// 此代码示例演示如何向 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 添加文本字段注释。

在线试用

请试用以下使用上述API开发的免费在线PDF注释工具。 https://products.groupdocs.app/annotation/pdf

结论

在本文中,我们学习了如何:

  • 使用 PHP 向 PDF 添加多个注释;
  • 在 PHP 中使用链接、图像和文本字段注释来注释 PDF;
  • 以编程方式将 PDF 文件上传到云端;
  • 从云端下载带注释的 PDF 文件。

此外,您可以使用 文档 了解有关 GroupDocs.Annotation Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看