Ký số các tệp PDF

PDF tài liệu là một trong những định dạng tệp được sử dụng rộng rãi để chia sẻ thông tin. Chúng thường có giá trị bảo mật và pháp lý, chẳng hạn như hợp đồng. Để đảm bảo tính toàn vẹn của tệp và tránh bất kỳ hành vi làm giả nào, chúng tôi thêm chữ ký số. Nó cũng đảm bảo rằng tài liệu không bị sửa đổi bởi người khác ngoài tác giả và xác minh rằng tác giả là người mà chúng tôi mong đợi chứ không phải người khác.

Chữ ký số trong PDF tương đương với chữ ký mực trên tài liệu giấy, nhưng an toàn hơn nhiều. Thông tin này được đặt bên trong tài liệu và độc giả PDF phổ biến có thể kiểm tra xem tài liệu có bị người lạ sửa đổi không. Trong bài viết này, chúng ta sẽ thảo luận chi tiết về cách ký số tài liệu PDF trực tuyến bằng PHP.

Truy cập API bằng lệnh cURL

API của chúng tôi được xây dựng theo các nguyên tắc kiến trúc REST nên chúng cũng có thể được truy cập thông qua các lệnh cURL. Xin lưu ý rằng API của chúng tôi chỉ có thể truy cập được đối với những người được ủy quyền, vì vậy trước khi truy cập API, trước tiên bạn cần truy cập Bảng điều khiển Aspose.Cloud và nếu bạn có tài khoản GitHub hoặc Google, chỉ cần Đăng ký. Nếu không, hãy nhấp vào nút Tạo tài khoản mới và cung cấp thông tin bắt buộc. Bây giờ hãy đăng nhập vào bảng điều khiển bằng thông tin xác thực và mở rộng phần Ứng dụng từ bảng điều khiển và cuộn xuống phần Thông tin xác thực của khách hàng để xem thông tin chi tiết về ID khách hàng và Bí mật khách hàng.

Bây giờ bước tiếp theo là tạo JSON Web Token (JWT) để API có thể truy cập được thông qua dấu nhắc lệnh. Cùng một mã thông báo JWT được sử dụng để truy cập API thông qua lệnh cURL.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Truy cập API thông qua PHP SDK

Để tạo điều kiện thuận lợi cho khách hàng PHP muốn xử lý tệp PDF theo chương trình thông qua mã PHP, chúng tôi đã phát triển Aspose.PDF Cloud SDK cho PHP, đây là một trình bao bọc xung quanh Aspose.PDF Cloud API. Chúng ta có thể sử dụng cùng một SDK để xử lý chữ ký số và thực hiện các hoạt động liên quan. SDK có sẵn để tải xuống từ ComposerGitHub.

Bây giờ chúng ta sẽ thảo luận về các bước cài đặt Aspose.PDF Cloud SDK cho PHP thông qua composer. Chúng tôi đã biết rằng Composer được khuyến nghị sử dụng với SDK và để quản lý các phụ thuộc của dự án của bạn. Vì vậy, sau khi chúng ta đã cấu hình composer trên hệ thống của bạn, hãy thử sử dụng lệnh sau để cài đặt Aspose.PDF Cloud SDK cho PHP.

composer require aspose/pdf-sdk-php

Đọc các trường chữ ký

API cho phép bạn đọc các thuộc tính liên quan đến trường chữ ký đã có trong tài liệu PDF. Để đọc trường chữ ký, bạn có hai tùy chọn.

  • Đọc các trường chữ ký từ trang cụ thể của tài liệu bằng cách sử dụng API GetPageSignatureFields
  • Đọc trường chữ ký tài liệu theo tên bằng cách sử dụng API GetSignatureField

Để đọc các trường chữ ký từ một trang cụ thể của tài liệu, vui lòng thử sử dụng lệnh cURL sau. Xin lưu ý trong lệnh sau, BlankWithSignature.pdf là tệp PDF nguồn:

curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/page/1/fields/signature" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Bây giờ để đọc các thuộc tính liên quan đến trường Chữ ký cụ thể trên tài liệu, vui lòng thử sử dụng lệnh sau, trong đó chúng tôi cung cấp tên của trường chữ ký cụ thể làm đối số.

curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/fields/signature/Signature1" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Các chi tiết và các bước được đưa ra dưới đây giải thích cách chúng ta có thể lấy thông tin chi tiết về trường chữ ký từ một số trang nhất định của tài liệu PDF bằng cách sử dụng mã PHP.

protected $pdfApi;
// Nhận App key và App SID từ https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// đối tượng cấu hình
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// tạo phiên bản PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// tên của tài liệu PDF đầu vào
$name = 'BlankWithSignature.pdf';
// tải tập tin lên bộ nhớ đám mây 
$this->uploadFile($name);

// số trang trong tài liệu
$pageNumber = 1;

// gọi phương thức API để lấy các trường chữ ký từ tài liệu
$response = $this->pdfApi->getPageSignatureFields($name, $pageNumber, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Mã được cung cấp cho biết cách lấy thông tin cho các trường chữ ký nhất định trong tệp PDF.

protected $pdfApi;
// Nhận App key và App SID từ https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// đối tượng cấu hình
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// tạo phiên bản PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// tên của tài liệu PDF đầu vào
$name = 'BlankWithSignature.pdf';
// tải PDF lên lưu trữ đám mây
$this->uploadFile($name);

// trường chữ ký để lấy thông tin
$fieldName = 'Signature1';

// gọi API để lấy thông tin chi tiết về trường chữ ký
$response = $this->pdfApi->getSignatureField($name, $fieldName, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Thêm trường chữ ký bằng PHP

Aspose.PDF Cloud SDK for PHP cũng cung cấp khả năng thêm trường chữ ký vào tài liệu PDF. Đoạn mã dưới đây cho phép bạn thêm trường chữ ký vào tệp PDF.

Ký vào tệp PDF
 protected $pdfApi;
// Nhận App key và App SID từ https://dashboard.aspose.cloud/
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';

// đối tượng cấu hình
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);

// tạo phiên bản PdfApi
$this->pdfApi = new PdfApi(null, $this->config);

// tên của tài liệu PDF đầu vào
$name = 'BlankWithSignature.pdf';

// tải tập tin lên bộ nhớ đám mây
$this->uploadFile($name);

$signatureFileName = '33226.p12';
$this->uploadFile($signatureFileName);

$folder = $this->tempFolder;

$signature = new Aspose\PDF\Model\Signature();
$signature->setAuthority('Nayyer Shahbaz');
$signature->setContact('nayyer.shahbaz@aspose.com');
$signature->setDate('08/01/2012 12:15:00.000 PM');
$signature->setFormFieldName('Signature1');
$signature->setLocation('Australia');
$signature->setPassword('sIikZSmz');
$signature->setRectangle(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 0, 'ury' => 0]));
$signature->setSignaturePath($folder . '/' . $signatureFileName);
$signature->setSignatureType(Aspose\PDF\Model\SignatureType::PKCS7);
$signature->setVisible(true);
$signature->setShowProperties(false);

$field = new Aspose\PDF\Model\SignatureField();
$field->setPartialName('sign1');
// trang chỉ mục nơi trường chữ ký cần được thêm vào
$field->setPageIndex(1);
$field->setSignature($signature);
// chỉ định vùng hình chữ nhật cho trường Chữ ký
$field->setRect(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 160, 'ury' => 140]));

// gọi API để thêm trường chữ ký
$response = $this->pdfApi->postSignatureField($name, $field, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());

Phần kết luận

Trong blog này, chúng tôi đã thảo luận về các khái niệm làm việc với chữ ký số trong tài liệu PDF. Chúng tôi đã tìm hiểu về cách lấy thông tin liên quan đến các trường chữ ký hiện có cũng như cách thêm các trường chữ ký mới vào tài liệu. Xin lưu ý rằng Aspose.PDF Cloud SDK cho PHP là mã nguồn mở và mã nguồn đầy đủ có thể được tải xuống từ kho lưu trữ GitHub.

Vui lòng thử sử dụng API của chúng tôi và trong trường hợp bạn gặp bất kỳ vấn đề nào, vui lòng liên hệ qua [diễn đàn hỗ trợ khách hàng] miễn phí12.