在 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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看