Yêu cầu thg 9 29, 2021 8:41 SA 401 0 1
  • 401 0 1
0

Cách tạo signature certification in PDF using Laravel

Chia sẻ
  • 401 0 1

A/c nào đã làm về signature certification in PDF trong Laravel hướng dẫn dùm em với ạ. Giống như hình bên dưới ạ.

image.png

Avatar Dao Thai Son @dao.thai.son
thg 9 29, 2021 8:42 SA

Bạn đang sử dụng package nào để render ra file PDF vậy ?

thg 9 29, 2021 8:59 SA

@dao.thai.son Dạ em sử dụng elibyy/tcpdf-laravel

Avatar Truong Dang @xdangminhtruongx
thg 10 1, 2021 10:13 SA

Cái này là chữ ký số, để đảm tính pháp lý thì nên sử dụng dịch vụ chữ ký số của một bên thứ 3 được nhà nước cấp giấy phép phát hành, cung cấp dịch vụ chữ ký số nhé bạn.

1 CÂU TRẢ LỜI


Đã trả lời thg 9 30, 2021 1:55 SA
+2

Phần mà bạn nhắc đến là khái niệm Digital Signature, tức chữ ký số. Và để ký được chữ ký số này thì bạn sẽ cần một file private certificate.

Bạn có thể tham khảo phần official example của TCPDF, có một đoạn nhắc đến việc tạo Digital Signature này (package elibyy/tcpdf-laravel mà bạn đang dùng là wrapper dành cho Laravel của package gốc tecnickcom/TCPDF)

https://github.com/tecnickcom/TCPDF/blob/456b794f1fae9aee5c151a1ee515aae2aaa619a3/examples/example_052.php#L70

Tức về cơ bản thì sẽ có các bước như sau

NOTES:
 - To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
 - To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
 - To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
*/

// Load file certificate dùng để ký chữ ký
$certificate = 'file://data/cert/tcpdf.crt';

// Phần thông tin sẽ được ký
$info = array(
	'Name' => 'TCPDF',
	'Location' => 'Office',
	'Reason' => 'Testing TCPDF',
	'ContactInfo' => 'http://www.tcpdf.org',
	);

// Tạo signature trong file PDF
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);

// define active area for signature appearance
$pdf->setSignatureAppearance(180, 60, 15, 15);

Hoặc bạn có thể tham khảo một vài hướng dẫn về add digital signature theo các bài ở dưới đây:

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí