QR 碼(快速響應碼)是一種機器可讀的矩陣條碼,形式為黑白方塊陣列。它是一種光學標籤,包含可使用 QR 閱讀器讀取的信息。我們可以通過編程方式生成 QR 碼,並在雲端對文檔和圖像進行簽名。在本文中,我們將學習如何在 PHP 中使用 REST API 生成 QR 碼以簽署 PDF 文檔。
本文應涵蓋以下主題:
- 二維碼生成器 REST API 和 PHP SDK
- 生成二維碼以在 PHP 中籤署 PDF
- 生成 Aztec QR 代碼以在 PHP 中籤署 PDF
- 在 PHP 中創建 DataMatrix QR 代碼以簽署 PDF
- 在 PHP 中驗證二維碼簽名
二維碼生成器 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
- 下載簽名文件
上傳文件
首先,我們將使用下面給出的代碼示例將 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 文檔進行簽名:
- 首先,創建 SignApi 的實例。
- 接下來,提供輸入 PDF 文件路徑。
- 然後,設置輸出文件路徑。
- 接下來,初始化 SignQRCodeOptions 對象。
- 然後,將 QRCodeType 設置為“QR”。此外,設置文本及其位置。
- (可選)設置選項,例如 Page、RotationAngle、HorizontalAlignment、Border、Padding 等。
- 之後,使用定義的 SignSettings 創建 createSignaturesRequest。
- 最後調用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();
下載使用二維碼簽名的 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();
在 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();
在 PHP 中驗證二維碼簽名
您可以按照以下步驟輕鬆驗證生成的二維碼簽名:
- 首先,創建 SignApi 的實例。
- 設置PDF文件路徑。
- 定義 VerifyQRCodeOptions。
- 提供簽名類型、文本和代碼。
- 定義 VerifySettings 並將 VerifyQRCodeOptions 分配給 VerifySettings。
- 之後,使用 VerifySettings 創建 VerifySignatureRequest。
- 最後,通過調用 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。