在 PHP 中使用 REST API 生成 QR 代碼以簽署 PDF。

QR 碼(快速響應碼)是一種機器可讀的矩陣條碼,形式為黑白方塊陣列。它是一種光學標籤,包含可使用 QR 閱讀器讀取的信息。我們可以通過編程方式生成 QR 碼,並在雲端對文檔和圖像進行簽名。在本文中,我們將學習如何在 PHP 中使用 REST API 生成 QR 碼以簽署 PDF 文檔。

本文應涵蓋以下主題:

二維碼生成器 REST API 和 PHP SDK

為了生成 QR 碼以簽署 PDF 文檔,我們將使用 GroupDocs.Signature Cloud 的 PHP SDK API。它允許創建、驗證和搜索各種類型的簽名,例如圖像、條形碼、二維碼、基於文本的簽名、數字簽名和郵票簽名。它支持以下二維碼類型:

  • 阿茲特克法典
  • 二維碼
  • GS1 數據矩陣
  • GS1二維碼
  • 二維碼

請在控制台中使用以下命令安裝它:

composer require groupdocscloud/groupdocs-signature-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\Signature\Configuration();

// 設置配置
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

在 PHP 中使用 REST API 生成 QR 碼以簽署 PDF

我們可以按照下面提到的簡單步驟生成二維碼來簽署雲端的PDF文檔:

上傳文件

首先,我們將使用下面給出的代碼示例將 PDF 文檔上傳到雲端:

// 此代碼示例演示如何將 PDF 文件上傳到雲端。
// 初始化接口
$apiInstance = new GroupDocs\Signature\FileApi($configuration);

// 輸入文件路徑
$file = "C:\\Files\\Signature\\sample.pdf";

// 上傳文件請求
$request = new GroupDocs\Signature\Model\Requests\UploadFileRequest("sample.pdf", $file, self::$MyStorage, null);

// 上傳文件
$response = $apiInstance->uploadFile($request);

因此,上傳的 PDF 文件將在雲端儀表板的 文件部分 中可用。

生成二維碼以在 PHP 中籤署 PDF

我們可以按照以下步驟以編程方式生成 QR 碼並對上傳的 PDF 文檔進行簽名:

  1. 首先,創建 SignApi 的實例。
  2. 接下來,提供輸入 PDF 文件路徑。
  3. 然後,設置輸出文件路徑。
  4. 接下來,初始化 SignQRCodeOptions 對象。
  5. 然後,將 QRCodeType 設置為“QR”。此外,設置文本及其位置。
  6. (可選)設置選項,例如 Page、RotationAngle、HorizontalAlignment、Border、Padding 等。
  7. 之後,使用定義的 SignSettings 創建 createSignaturesRequest。
  8. 最後調用createSignatures()方法得到結果。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 生成 QR 碼並簽署 PDF 文檔。

// 此代碼示例演示如何生成 QR 代碼以簽署 PDF 文檔。
// 簽名API實例
$apiInstance = new GroupDocs\Signature\SignApi($configuration);

// 輸入文件路徑
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// 定義 SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);

// 定義保存選項
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);

// 定義 Sign QR 碼選項
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);        
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);        
$options->setQRCodeType("QR");
$options->setText("This is sample QR.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);

// 顏色
$color = new GroupDocs\Signature\Model\顏色();
$color->setWeb("Black");

// 邊界
$border = new GroupDocs\Signature\Model\邊界Line();
$border->set顏色($color);
$border->setVisible(true);
$border->setWeight(12);
$options->set邊界($border);

// 填充
$padding = new GroupDocs\Signature\Model\填充();
$padding->setAll(5);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);

$settings->setOptions([$options]);

// 創建簽名請求
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);

// 創建簽名
$response = $apiInstance->createSignatures($request);

echo "Response: ", $response->getFileInfo();
在 PHP 中使用 REST API 生成 QR 代碼以簽署 PDF。

在 PHP 中使用 REST API 生成 QR 代碼以簽署 PDF。

下載使用二維碼簽名的 PDF

上面的代碼示例將簽名的 PDF 文件保存在雲端。可以使用以下代碼示例下載它:

// 此代碼示例演示如何從雲端下載 PDF 文件。
// 初始化接口
$apiInstance = new GroupDocs\Signature\FileApi($configuration);

// 下載文件請求
$request = new GroupDocs\Signature\Model\Requests\DownloadFileRequest("Aztec_QR_out.pdf", self::$MyStorage, null);

// 下載文件
$response = $apiInstance->downloadFile($request);

生成 Aztec 代碼以在 PHP 中籤署 PDF

Aztec 碼是最易於打印和掃描的二維 (2D) QR 碼。我們可以按照前面提到的步驟生成 Aztec 代碼來對上傳的 PDF 文檔進行簽名。然而,我們只需要將 QRCodeType 設置為“Aztec”。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 生成 Aztec 代碼並簽署 PDF 文檔。

// 此代碼示例演示如何在 PHP 中生成 Aztec 代碼。
// 簽名API實例
$apiInstance = new GroupDocs\Signature\SignApi($configuration);

// 輸入文件路徑
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// 定義 SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);

// 定義保存選項
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);

// 定義 Sign QR 碼選項
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);        
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);        
$options->setQRCodeType("Aztec");
$options->setText("This is a sample Aztec QR code.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);

// 顏色
$color = new GroupDocs\Signature\Model\顏色();
$color->setWeb("Black");

// 邊界
$border = new GroupDocs\Signature\Model\邊界Line();
$border->set顏色($color);
$border->setVisible(true);
$border->setWeight(12);
$options->set邊界($border);

// 填充
$padding = new GroupDocs\Signature\Model\填充();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);

$settings->setOptions([$options]);

// 創建簽名請求
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);

// 創建簽名
$response = $apiInstance->createSignatures($request);

echo "Response: ", $response->getFileInfo();
生成 Aztec QR 代碼以在 PHP 中籤署 PDF。

生成 Aztec 代碼以在 PHP 中籤署 PDF。

在 PHP 中創建 DataMatrix 代碼以簽署 PDF

我們也可以按照前面提到的步驟生成 DataMatrix 代碼。然而,我們只需要將 QRCodeType 設置為“DataMatrix”。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 生成 DataMatrix 代碼並簽署 PDF 文檔。

// 此代碼示例演示如何在 PHP 中生成 DataMatrix 代碼。
// 簽名API實例
$apiInstance = new GroupDocs\Signature\SignApi($configuration);

// 輸入文件路徑
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");

// 定義 SignSettings
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);

// 定義保存選項
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);

// 定義 Sign QR 碼選項
$options = new GroupDocs\Signature\Model\SignQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);        
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);        
$options->setQRCodeType("DataMatrix");
$options->setText("This is a sample DataMatrix QR code.");
$options->setLeft(260);
$options->setTop(350);
$options->setWidth(100);
$options->setHeight(100);

// 顏色
$color = new GroupDocs\Signature\Model\顏色();
$color->setWeb("Black");

// 邊界
$border = new GroupDocs\Signature\Model\邊界Line();
$border->set顏色($color);
$border->setVisible(true);
$border->setWeight(12);
$options->set邊界($border);

// 填充
$padding = new GroupDocs\Signature\Model\填充();
$padding->setAll(2);
$options->setMargin($padding);
$options->setMarginMeasureType(GroupDocs\Signature\Model\SignTextOptions::MARGIN_MEASURE_TYPE_PIXELS);

$settings->setOptions([$options]);

// 創建簽名請求
$request = new GroupDocs\Signature\Model\Requests\createSignaturesRequest($settings);

// 創建簽名
$response = $apiInstance->createSignatures($request);

echo "Response: ", $response->getFileInfo();
創建 DataMatrix QR 代碼以在 PHP 中籤署 PDF。

創建 DataMatrix 代碼以在 PHP 中籤署 PDF。

在 PHP 中驗證二維碼簽名

您可以按照以下步驟輕鬆驗證生成的二維碼簽名:

  1. 首先,創建 SignApi 的實例。
  2. 設置PDF文件路徑。
  3. 定義 VerifyQRCodeOptions。
  4. 提供簽名類型、文本和代碼。
  5. 定義 VerifySettings 並將 VerifyQRCodeOptions 分配給 VerifySettings。
  6. 之後,使用 VerifySettings 創建 VerifySignatureRequest。
  7. 最後,通過調用 verifySignatures() 方法獲取結果。

以下代碼示例展示瞭如何在 PHP 中使用 REST API 驗證二維碼簽名。

// 此代碼示例演示如何驗證 QR 碼簽名。
// 簽名API實例
$apiInstance = new GroupDocs\Signature\SignApi($configuration);

// 輸入文件路徑
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("QR_out.pdf");

// 定義驗證設置
$settings = new GroupDocs\Signature\Model\VerifySettings();
$settings->setFileInfo($fileInfo);

// 定義驗證二維碼選項
$options = new GroupDocs\Signature\Model\VerifyQRCodeOptions();
$options->setPage(1);
$options->setAllPages(false);        
$options->setSignatureType(GroupDocs\Signature\Model\OptionsBase::SIGNATURE_TYPE_QR_CODE);        
$options->setQRCodeType("QR");
$options->setText("This is sample QR.");

$settings->setOptions([$options]);

// 驗證簽名請求
$request = new GroupDocs\Signature\Model\Requests\VerifySignaturesRequest($settings);

// 驗證簽名
$response = $apiInstance->verifySignatures($request);

echo "Response: ", $response;

在線試用

請試用以下使用上述API開發的免費在線PDF簽名工具。 https://products.groupdocs.app/signature/pdf

結論

在本文中,我們學習瞭如何:

  • 在 PHP 中生成二維碼;
  • 在 PHP 中使用二維碼簽署 PDF 文檔;
  • 在 PHP 中驗證電子簽名;
  • 以編程方式將 PDF 文件上傳到雲端;
  • 從雲端下載簽名的 PDF 文件。

此外,您可以使用 文檔 了解有關 GroupDocs.Signature Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看