註釋提供有關文檔任何特定部分的額外信息。我們可以使用註釋標記帶有反饋和評論的文檔。我們可以在 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 文檔進行註釋:
上傳文件
首先,我們將使用以下代碼示例將 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();
您可以在文檔的 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);
使用 PHP 使用鏈接註釋進行註釋
我們還可以按照以下步驟在 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 添加圖像註釋
我們可以按照前面提到的步驟在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 添加文本字段註釋
我們也可以按照前面提到的步驟在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();
在線試用
請試用以下使用上述API開發的免費在線PDF註釋工具。 https://products.groupdocs.app/annotation/pdf
結論
在本文中,我們學習瞭如何:
- 使用 PHP 向 PDF 添加多個註釋;
- 在 PHP 中使用鏈接、圖像和文本字段註釋來註釋 PDF;
- 以編程方式將 PDF 文件上傳到雲端;
- 從雲端下載帶註釋的 PDF 文件。
此外,您可以使用 文檔 了解有關 GroupDocs.Annotation Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。