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