Создайте QR-код для подписи PDF с помощью REST API в PHP.

QR-код (Quick Response code) — тип машиночитаемого матричного штрих-кода в виде массива черных и белых квадратов. Это оптическая этикетка, которая содержит информацию, читаемую с помощью считывателя QR. Мы можем программно генерировать QR-коды и подписывать документы и изображения в облаке. В этой статье мы узнаем, как сгенерировать QR-код для подписи PDF-документов с использованием REST API в 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 в облако, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загрузить 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-документ, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр SignApi.
  2. Затем укажите путь к входному файлу PDF.
  3. Затем установите путь к выходному файлу.
  4. Затем инициализируйте объект SignQRCodeOptions.
  5. Затем установите для QRCodeType значение «QR». Кроме того, установите текст и его положение.
  6. При желании установите такие параметры, как Page, RotationAngle, HorizontalAlignment, Border, Padding и т. д.
  7. После этого создайте createSignaturesRequest с определенными SignSettings.
  8. Наконец, получите результаты, вызвав метод 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();
Создайте QR-код для подписи PDF с помощью REST API в PHP.

Создайте QR-код для подписи PDF с помощью REST API в PHP.

Загрузите 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();
Сгенерируйте QR-код Aztec для подписи PDF в PHP.

Сгенерируйте код Aztec для подписи PDF в PHP.

Создайте код 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-код DataMatrix для подписи PDF в PHP.

Создайте код DataMatrix для подписи PDF в PHP.

Проверка подписи QR-кода в PHP

Вы можете легко проверить сгенерированные подписи QR-кода, выполнив следующие действия:

  1. Во-первых, создайте экземпляр SignApi.
  2. Задайте путь к файлу PDF.
  3. Определите VerifyQRCodeOptions.
  4. Укажите тип подписи, текст и код.
  5. Определите VerifySettings и назначьте VerifyQRCodeOptions для VerifySettings.
  6. После этого создайте VerifySignatureRequest с VerifySettings.
  7. Наконец, получите результаты, вызвав метод 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 и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также