php实现往pdf中加数字签名操作示例【附源码下载】
本文实例讲述了php实现往pdf中加数字签名操作。分享给大家供大家参考,具体如下:
//============================================================+ //Filename:example_052.php //Begin:2009-05-07 //LastUpdate:2013-05-14 // //Description:Example052forTCPDFclass //CertificationSignature(experimental) // //Author:NicolaAsuni // //(c)Copyright: //NicolaAsuni //Tecnick.comLTD //www.tecnick.com //info@tecnick.com //============================================================+ /** *CreatesanexamplePDFTESTdocumentusingTCPDF *@packagecom.tecnick.tcpdf *@abstractTCPDF-Example:CertificationSignature(experimental) *@authorNicolaAsuni *@since2009-05-07 */ //IncludethemainTCPDFlibrary(searchforinstallationpath). require_once('tcpdf_include.php'); //createnewPDFdocument $pdf=newTCPDF(PDF_PAGE_ORIENTATION,PDF_UNIT,PDF_PAGE_FORMAT,true,'UTF-8',false); //setdocumentinformation $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('NicolaAsuni'); $pdf->SetTitle('TCPDFExample052'); $pdf->SetSubject('TCPDFTutorial'); $pdf->SetKeywords('TCPDF,PDF,example,test,guide'); //setdefaultheaderdata $pdf->SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,PDF_HEADER_TITLE.'052',PDF_HEADER_STRING); //setheaderandfooterfonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN,'',PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA,'',PDF_FONT_SIZE_DATA)); //setdefaultmonospacedfont $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); //setmargins $pdf->SetMargins(PDF_MARGIN_LEFT,PDF_MARGIN_TOP,PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //setautopagebreaks $pdf->SetAutoPageBreak(TRUE,PDF_MARGIN_BOTTOM); //setimagescalefactor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //setsomelanguage-dependentstrings(optional) if(@file_exists(dirname(__FILE__).'/lang/eng.php')){ require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); } //--------------------------------------------------------- /* NOTES: -Tocreateself-signedsignature:opensslreq-x509-nodes-days365000-newkeyrsa:1024-keyouttcpdf.crt-outtcpdf.crt -Toexportcrttop12:opensslpkcs12-export-intcpdf.crt-outtcpdf.p12 -Toconvertpfxcertificatetopem:opensslpkcs12-intcpdf.pfx-outtcpdf.crt-nodes */ //setcertificatefile $certificate='file://data/cert/tcpdf.crt'; $certificate='file://'.realpath('./data/cert/tcpdf.crt'); //setadditionalinformation $info=array( 'Name'=>'TCPDF', 'Location'=>'Office', 'Reason'=>'TestingTCPDF', 'ContactInfo'=>'http://www.tcpdf.org', ); //setdocumentsignature $pdf->setSignature($certificate,$certificate,'tcpdfdemo','',2,$info); //setfont $pdf->SetFont('helvetica','',12); //addapage $pdf->AddPage(); //printalineoftext $text='Thisisadigitallysigneddocumentusingthedefault(example)tcpdf.crtcertificate.
Tovalidatethissignatureyouhavetoloadthetcpdf.fdfontheArobatReadertoaddthecertificatetoListofTrustedIdentities.
FormoreinformationcheckthesourcecodeofthisexampleandthesourcecodedocumentationforthesetSignature()method.www.tcpdf.org'; $pdf->writeHTML($text,true,0,true,0); //--------------------------------------- //***setsignatureappearance*** //createcontentforsignature(imageand/ortext) $pdf->Image('images/tcpdf_signature.png',180,60,15,15,'PNG'); //defineactiveareaforsignatureappearance $pdf->setSignatureAppearance(180,60,15,15); //--------------------------------------- //***setanemptysignatureappearance*** $pdf->addEmptySignatureAppearance(180,80,15,15); //--------------------------------------------------------- //CloseandoutputPDFdocument $pdf->Output('example_052.pdf','D'); //============================================================+ //ENDOFFILE //============================================================+
其中tcpdf_include.php文件(源自tcpdf插件)如下:
eng.php文件如下:
补充:
tcpdf.crt文件点击此处本站下载。
tcpdf插件点击此处本站下载。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》及《php字符串(string)用法总结》
希望本文所述对大家PHP程序设计有所帮助。