QR-код (Quick Response code) — тип машиночитаемого матричного штрих-кода в виде массива черных и белых квадратов. Это оптическая этикетка, которая содержит информацию, читаемую с помощью считывателя QR. Мы можем программно генерировать QR-коды и подписывать документы и изображения в облаке. В этой статье мы узнаем, как сгенерировать QR-код для подписи PDF-документов с использованием REST API в PHP.
В этой статье должны быть раскрыты следующие темы:
- REST API генератора QR-кода и PHP SDK
- Сгенерируйте QR-код для подписи PDF в PHP
- Сгенерируйте QR-код Aztec для подписи PDF в PHP
- Создайте QR-код DataMatrix для подписи PDF в PHP
- Проверка подписи QR-кода в PHP
REST API генератора QR-кода и PHP SDK
Для создания QR-кодов для подписи документов PDF мы будем использовать API PHP SDK of GroupDocs.Signature Cloud. Он позволяет создавать, проверять и искать различные типы подписей, такие как изображения, штрих-коды, QR-коды, текстовые, цифровые и штампованные подписи. Он поддерживает следующие типы QR-кодов:
- Кодекс ацтеков
- Код DataMatrix
- Матрица данных GS1
- GS1 QR
- QR-код
Пожалуйста, установите его с помощью следующей команды в консоли:
composer require groupdocscloud/groupdocs-signature-cloud
После установки используйте autoload Composers, чтобы использовать SDK, как показано ниже:
require_once('vendor/autoload.php');
Пожалуйста, получите свой идентификатор клиента и секрет из панели инструментов, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:
// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
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);
Сгенерируйте QR-код для подписи PDF с помощью REST API в PHP
Мы можем сгенерировать QR-код для подписи документов PDF в облаке, выполнив простые шаги, указанные ниже:
- Загрузить PDF в облако
- Сгенерируйте QR-код для подписи PDF
- Скачать подписанный файл
Загрузить документ
Во-первых, мы загрузим документ PDF в облако, используя пример кода, приведенный ниже:
// В этом примере кода показано, как загрузить PDF-файл в облако.
// Инициализировать API
$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-файл будет доступен в разделе файлов панели инструментов в облаке.
Сгенерируйте QR-код для подписи PDF в PHP
Мы можем сгенерировать QR-код программно и подписать загруженный PDF-документ, выполнив следующие шаги:
- Во-первых, создайте экземпляр SignApi.
- Затем укажите путь к входному файлу PDF.
- Затем установите путь к выходному файлу.
- Затем инициализируйте объект SignQRCodeOptions.
- Затем установите для QRCodeType значение «QR». Кроме того, установите текст и его положение.
- При желании установите такие параметры, как Page, RotationAngle, HorizontalAlignment, Border, Padding и т. д.
- После этого создайте createSignaturesRequest с определенными SignSettings.
- Наконец, получите результаты, вызвав метод createSignatures().
В следующем примере кода показано, как создать QR-код и подписать документ PDF с помощью REST API в PHP.
// В этом примере кода показано, как сгенерировать QR-код для подписания документа PDF.
// Экземпляр SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Путь к входному файлу
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Определить настройки знака
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Определить параметры сохранения
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Определить параметры подписи 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-файл, подписанный QR-кодом
Приведенный выше пример кода сохранит подписанный PDF-файл в облаке. Его можно загрузить с помощью следующего примера кода:
// В этом примере кода показано, как загрузить PDF-файл из облака.
// Инициализировать API
$apiInstance = new GroupDocs\Signature\FileApi($configuration);
// Запрос на скачивание файла
$request = new GroupDocs\Signature\Model\Requests\DownloadFileRequest("Aztec_QR_out.pdf", self::$MyStorage, null);
// Загрузить файл
$response = $apiInstance->downloadFile($request);
Генерация ацтекского кода для подписи PDF в PHP
Код Aztec — это самый удобный для печати и сканирования двумерный (2D) QR-код. Мы можем сгенерировать код Aztec для подписи загруженного PDF-документа, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить QRCodeType на «Aztec».
В следующем примере кода показано, как сгенерировать код Aztec и подписать документ PDF с помощью REST API в PHP.
// В этом примере кода показано, как генерировать код Aztec на PHP.
// Экземпляр SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Путь к входному файлу
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Определить настройки знака
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Определить параметры сохранения
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Определить параметры подписи 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();
Создайте код DataMatrix для подписи PDF в PHP
Мы также можем сгенерировать код DataMatrix, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить QRCodeType в «DataMatrix».
В следующем примере кода показано, как сгенерировать код DataMatrix и подписать документ PDF с помощью REST API в PHP.
// В этом примере кода показано, как сгенерировать код DataMatrix в PHP.
// Экземпляр SignatureAPI
$apiInstance = new GroupDocs\Signature\SignApi($configuration);
// Путь к входному файлу
$fileInfo = new GroupDocs\Signature\Model\FileInfo();
$fileInfo->setFilePath("sample.pdf");
// Определить настройки знака
$settings = new GroupDocs\Signature\Model\SignSettings();
$settings->setFileInfo($fileInfo);
// Определить параметры сохранения
$saveOptions = new GroupDocs\Signature\Model\SaveOptions();
$saveOptions->setOutputFilePath("QR_out.pdf");
$settings->setSaveOptions($saveOptions);
// Определить параметры подписи 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();
Проверка подписи QR-кода в PHP
Вы можете легко проверить сгенерированные подписи QR-кода, выполнив следующие действия:
- Во-первых, создайте экземпляр SignApi.
- Задайте путь к файлу PDF.
- Определите VerifyQRCodeOptions.
- Укажите тип подписи, текст и код.
- Определите VerifySettings и назначьте VerifyQRCodeOptions для VerifySettings.
- После этого создайте VerifySignatureRequest с VerifySettings.
- Наконец, получите результаты, вызвав метод verifySignatures().
В следующем примере кода показано, как проверить подписи QR-кода с помощью REST API в PHP.
// В этом примере кода показано, как проверить подписи QR-кода.
// Экземпляр SignatureAPI
$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);
// Определить параметры проверки QR-кода
$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;
Попробуйте онлайн
Попробуйте следующий бесплатный онлайн-инструмент для подписи PDF-файлов, разработанный с использованием вышеуказанного API. https://products.groupdocs.app/signature/pdf
Заключение
В этой статье мы узнали, как:
- сгенерировать QR-код на PHP;
- подписать PDF-документ QR-кодом на PHP;
- проверять электронные подписи в PHP;
- программно загрузить файл PDF в облако;
- скачать подписанный файл PDF из облака.
Кроме того, вы можете узнать больше о GroupDocs.Signature Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.