From 846bb0e7324b56a5a773de4388bbfcb3881dae80 Mon Sep 17 00:00:00 2001 From: Irfana Jaffer Sadhik Date: Wed, 5 Nov 2025 15:27:07 +0530 Subject: [PATCH] Task-935629-Digital Signing Sample updated --- ...ly-multiple-signatures-to-a-PDF-in-C#.slnx | 3 + .../Data/Input.pdf | Bin 0 -> 4961 bytes .../Data/PDF.pfx | Bin 0 -> 2327 bytes .../Data/Student Signature.jpg | Bin 0 -> 11097 bytes .../Data/Teacher Signature.png | Bin 0 -> 4233 bytes ...-multiple-signatures-to-a-PDF-in-C#.csproj | 41 ++++++++++++ .../Output/.gitkeep | 0 .../Program.cs | 59 ++++++++++++++++++ 8 files changed, 103 insertions(+) create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#.slnx create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/Input.pdf create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/PDF.pfx create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/Student Signature.jpg create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/Teacher Signature.png create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#.csproj create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Output/.gitkeep create mode 100644 Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Program.cs diff --git a/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#.slnx b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#.slnx new file mode 100644 index 00000000..330bc8fe --- /dev/null +++ b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#.slnx @@ -0,0 +1,3 @@ + + + diff --git a/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/Input.pdf b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/Input.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0a27340ee42dcd7c6786a5f87c8400f69ec3045c GIT binary patch literal 4961 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 B=!gIS literal 0 HcmV?d00001 diff --git a/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/PDF.pfx b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Data/PDF.pfx new file mode 100644 index 0000000000000000000000000000000000000000..b50733edb8613de23c62eadd35771e601b59a9b0 GIT binary patch literal 2327 zcmY*Zc|25m8$UC~7}P{Fyp)$ATc&c5kmZ`tC^EJfOT;i^Y*Sg>2eaoFh z%BYk*Wlas)$`+C|X%qM4^S<|f?jOJNe9w1ze$OB0IUq|I1BVHKEL0CtSS{K-`s-Gh z5bP!k^%%iIaUr?^WC?u#mn1NcUC#-7c3r2Q=pbdwezs>r_I z=lW@0DvJ1IR{}ml#y3)&{-8763vszxw-Bb;pPcJ<_vwxK_GQ1(cXW}`*nU1iXo&&( zTOwo?l>5gKoU;5TulWYczS@RPxfbO{>7FNjm!EaNNhmn8=lO!8nP*$X#Wkvr`9S*F zeX}YY|If|c-f@j#Q^8oX+}*T+0We= zl&hrf!gk7KeOg9Y?C5go?O(PN(bHSU$MXi$tki9mtNF%g7cokPBy)1*xxkM0pJ@lL zO=cyMQFT{V4`8>9ySVv{aLeT?FkiG%JCvtXTqcZ7j1yH_&J<6zE|szM;%H0FhqCR^ z8K+RTF&kvN1x5vC4SDQ@g1;46J-?{#Af>1n<{ekxN4z3A5!Dg>42lG7+7=If!MPfaVYo;19=E|>{gV#+1@-)%;xG+2Sy$i~KnEzm8Gr!SWtpIxn*#k~cV_U!yaEGcHgzPsFX;UXa4y#Sp9ngVV?+5e%EkF~{hKAe= z4d4k~q64A*Pz8Yl5YmMdZ^*HC(?^AnHH{J@*5sD0Iss6q35iG>1(VLR98YxAe(43JGk}3uTS_VDp?N=$OKhD&! zeN~&Wu+Ox;iuQ8rgzIQ?nW?j`m|&R|-o8eP!hRiJk4!kPYpCa)Y2kNGXy0tfa!EX+ zz4`q_t?UCi#}kof#aNEjjd+ucw$U}L*1U0y{Xr{Do}33JC*1*8Xixe0=LmS-U zZ5JCq>H5X{B~lEbz&{p3x-cX{A?he4E%z4mo;1wR=Y*Fp&Fe>o@e`&d$DUJ%77laC z&uAqtXS|DR;`OGcCKykeCax=1tp@IKFGw^{t{8Y(&RqFbCiO5*poFUQPOhN8)>*lw z{r*g-<4YS}lO!)%oBa7+)c4WPmbSn{c4%RJQsT|3E+p3esnbVC_9I1ZM+qI>r0-g$ zHp(v;8J>z5Jmgoe>@6+>5;>wV+~aLu^%QHKFp@9HpT|q2ZoIA3OZhycW;rI<8Z#w} z_HQz5nZNnWEXcD7-dD<(TiI9@rZ78?8dvW)9WbPk71!e<=rS$mPSW;Pmf#H@lWi%d za~6}n62_Y1JwbV$PYOJS^q}hNj%_51&n`H1>v~F0?sBeCan=U8Smomp$*LB#Sgdql z2xauGZ$g%j+Jc~yVMWDS`uQ8Sm@n!cM^WU0Xcy+W>c*9wcRS^)j=x_E{qdYQo^ZaJ zc2IqKh9(|j!ki=xq=e%DOvT-EUN#}o&JuNx)vhu4jeCD7^@TA|&d?^y;?6W%Ypy-_HZ66nmq z6Dli@*}vAgyk}V~8wnS7{Sa_u4c{RAi)z|%QvQp+<0@`>MzKC|OYCEdnZTm4b4D(8 zd`HuHjQ&6m)lI^8{{-=kq-@lBVY-+TBiE#^3w^u!^gBiO24KFE-IFK6>kGqlXO4!$ z;4Z(SAEzwj$>d4C?{mLqjlaGxzw}xlrE@P~m->kJgQ@WAQIdCQ#Wf{PSBS}2Ox;Q9 z_n(Wl&625qSfHK9RRtI>K_1#PiwIs%8Qs@T(<2Nl+EIPr%e-%CG;T64*Z`G@qS++> zvP*jY*dg;3W3WmW>ltpaZt)OZ)7D>Z$RF3xt6jfh(N*>0^xTmvvKK3C|GSp!Jj|Fz zJ2)yu(udf(D25?!R_C&G#)2~fH|g-nUcZZK;PXBrnf&3q{H<(z@7s$E^()w}!a{$zb??Yrr_p8#wb326xc5)uG_biV`cW&vUV)Q2dj zC=XFlQBcv)P#>XVqoY55jE;wi^%R>BkBEp6kAQ%LoQ{%&l!lCefQp5RhMwUC(+grs z;42{GD>}v(jDJjmgocKO{sCuDxtK!%IB;<#HhYyiaQ0`4Y`NOCO$oJOZpgp5z!+kEQ zh{yiv5slsF7<_^^O8Ol3ep%VHV#)^ov2<}&)!*qkRU8iPr@{Nj?0-JxkFz*`Kl87% zGk~Ya_m99q#sP=`Zj^$99|imVuR|z5>3q4z#Hp(_XRMAH{Mmp63}hS;r0I~{`gzSp zukcKX@xR^vzs~#XLLnv`^YQ*!2u<&L`jwtY1db0)E)Y$h)ylOsvXN(Fm++*AEZYQnocoAXK}CqFJEe#8AV81liBasrr%g zx|Y>l5e0txOsMye3KvhY#~lF2hB_Y+tI8`reXcUrP{~%%usJ^OA<+dcCnYaW=rhi$ zn}scnjs57QHWPqo0?2*n=Kk}$l(dKrnA&>22j2l44Xc$Q_EDHrdIkaa&s(QQa35DHP8JC9Jc z2-MnX3hqFWe%Nd+7;aNJo4d*iJ(kbj{Mp7u&)ktBhi{QDn`o;xUL%GMLO7%2(t zaJivIna9D#!9n_az$c9OniyJ6I#1heSY)&o-lg^K#YpmSs6b|+#11fqDx5rK53IS|M2}s*r&xeQn!0Na$hp=t7pO-Ozk|ajc?ENbbcyE zICyfJc+<)D99CtmxWLFGL-Y2vaO;)qNRH^h7_$fNyxVvuD4=st&RM)NwueYk;Fams zi*4=>dJN+}hwT|f)mSx16S%!&M-G>G@I^Lkn`>aPJY}bj=G3Ql#A+#`sr)CLZuszQ zev3|MCDvh>%)2EuBO8PGmvMv`rwDnYYHil|+)zy>Hzp$>sbIL7-P8&`p)X(Al+d?% zw>C*Ra`kT6C*lIKnjc2z9ciyJ#!#dGdkh2zvkP+)7`i!Q_&L1lur22yIUi^e2BkW< zTH6%5Ewq(tF8A|VV~Tan-2oWml8=wsC8HD?d&K=Hxx}2d4S`f;I{*6k4(jS-v(r6O zlMo2o?o*5W=vRC_qc)R{nZF#1X{ZLNbH}A%e&>9rJbmTN!BgzT3>l=%s#UOHF;Pp+ zQ1q);)*26)_dt-?AVc4-ts>tJDchSVurw{jB?e{jBnVj(S;BYy!GQM2f?h3$HU+tK z(9Ef%{!CNrZO(U_%{tD9Z(qNCOLR8F1n08yd#C32iL{upm^JYQ$sVT)=g=CB7Mi_C zjPL0bd&-r-jE>1qD96+Ar?KV^Dti^7XHt+mfCZ?Af=W%!ZD~#2D?jZ>%{YygLS&R~JbH3w zL5HFO-v(HqtoR1UlSaEGAY=_bpP>F*4RUev`>HO>9lp*Q(0a|GcR zZ?b`EVc}2kT&-91J1y-OzNUQ^q>B zGKEW|YZl5}8lIk7#N+?Kb~MaQi>;;X%B}E-Z;RXzrz0PZO|Om>E$C1riiy0|ln5QF z&_-E0862QhQ`a)j-4SZb+E1X|upU6WDFillOJB8OBuCdpl{D$RC_CVqZ`nI)K8&ak ziHwgoP{XQ$zBK7AtIwEeM6r@2Zz_uk%Lq-kbX z#+x`+dPITRo7@pAa?)7HOomRsJJ$}hJ0SIH88kEA8Ii`C7lS~wD>P$^_scu3syb4g zN7q|k6cy$iB)4vwV48_Q5zI>W36)6?-#QNRfvRRU*V9GoM$F1_Bnt6Gy8YRwY^?ci zikmCn@-Tr)G^13xie5@ma??t7S=G8>>uZ@Hg6nrfw3Zg}RT!2O>Y2W+S}&M+8-16c z{oY!_FD0&8_S38U&;sNtbe$UrosI=I!CdjS4xp=eL}Lu~L?Wrb)iEZrm6s4B%K_1z zT5IR&iTR|$zop6l;hhBX7L+YMrn8eOWvD55bsdtpI#YX_-uu0aHuTeKS$1Uw^;(-2 z7KWB8wPXBdhAzfznX&Reku>UI&{&h7%7$EH{LGQkdWz14pG+8S1bRPOUmn`mm6P5Y zl7!xumaNqlo$m+6Qmh&%WOXcb`JjkJoR_a|pFwTD-T^#hij=!&BjjkEh!9VYn8THv zEY@;gRdvh}1nr;>hhZk}JQxt7F&V5BtnThl$h53tE0v*>B?#oS{n4#2=X&Vk~eB zO{&9>Q9@hMGYj2#XHO!iG~A2Cy3SyupYG!Na;0 zk7UY0pJxr{&Kn#p#W_M{fgg6h?s%d2Jxq$@S}O0O z2L)sf+a3F>W9_j@m9pY@d?8M`r;&_FMBPZ!0DeGg%)hE1fqJx^n#@%$l$BWX4&YY7 zwo#+XHItRg0G0OOy#vU~>$W;``YRL_1}3CSZyFiCk{Czy(fDhQ3dG7AU1a#De&`0O z)L+FrY?at+hwgEG04pd7yUkLX!pV`}2afotj&(mpKM+Q;Z832}vD%_ekjkvrTz?!I z%D3Y2p}U%O&z03B>4XN7J-6Q?+!r*HnNzJ*^g_Eg1ustWi56`q=AJF7-J)*c3z`U= zLx<*|YcU)PZ-#B%jH@Z}#K;DW{-Uq(gl0h1a=LOq#QRGJVv0yNvWV-s+LI2~npqo_ zY|xQ)PJ=Ry+w7uLJUI*53H|jd;i7Bn!0rKXC zD5EtAsKYc4p3riadWZ7M@LonQChwj&q|FcW?o78dP*FEvRRQ!s#>a)Cs%uy9kP zOm6@RX#Y4hD2x~?g9w5sNK*(&@i}TN0WN};mW6a`Qhs(<&dzVWW6jD*aOOhfq(ft& z8C^4!pbA^2E_$IKrQQjJiK;_LrKt^Ob4R?rqL+~$7yD37{xf|38C*WNvSc{I8tK#U zkF%-pOteO3p_0Cr#Hr)6`%0V4)~T>+;;gkOuSTLy&dXral;= zG^tz76qqP#R$t$l6t(7a&F!OjxlWER(R<*&)fHI70H=dWZ6Dh0zc*@z=%n zKH}&b%XC7{SY1~O^ZyC9{lWBp zMP0g(E%Ximdr`+c3n`JEg95w*(CT3j5~3+|ATX9*Qq>L>&TC>dkUe(%Tv+r12>f>x zgJ&(~35F+xhUM*6Gw~ClF0urPt)n#x`#Ldqu=ZJfhzQKz^D4FyB10|`;h10Vj#8(5 zUHGA!&uRE2UZV{*;}B4g->ZZ?akyVMjUmO0oDDV#B=g^zrYWd164W!}iBk{zSg}Qp zi$&-4z5OUkkyNDM4xk&U*%~-tRjFlA4>L7eH_d@rzIw%#nT{x^n3Q_{bVLxN{Xh@3 zN7OQUb`XYQs5NHuMUdacXHD?oN9hZY;Lkpgnrq(^UxiWP*-m{Mmg<1kSk59f?I~ z(qsYc4nsjfA+jlV0J$=>O@i$I?9ToM+9j}ZJ@by8s>%7>nDO@q7(k$ap!8;*P)>;d zn%#Pq!}dO`B&+A3n8S6z{M)OsN?dY|$H?7^krGI(TSo#VTwkb?Oh)gr%LD2R-XZG!j za&Em%OIPx@+*Lzv&HV#%ttn7M>Y;!88`8nuwld{&RsmGHpcxjeGS!quJEX@Sj70cqcajdLd3;rRj4mXg{BHg*d5(PcoKwhKM-&H1<-8(}OeDx4T274U*KK>UH#K@`L=Cv(y(9 zs)Rj3rq9c>i9~J;3f~j_LTT;7_q(?G;7axCdsa7ag_}8q93%Ny@LY+`Gh{6V{0LlF zx_W;?>l`X|0+k&8ImPKE%QtF&llBqhNmBB>l&sDT*q^^c>m3u+9$!WQfA`RvSxH+> z)=CI8Bx;$BQd_HX0D1cu_S8U3@&eHOzu`6GWHmF#7DEnwK>_R`r(h(z<_547@O3Pw z*6pDlbM1&&+2vO3#aEr0fi7JRUs*a}6G-pDPE4imw7XkY{;ip#xA)++6w_6R0fDE) z5P1bdmUgn9zvsN}j45tNNIPQ?zB94z zZZi=pS9hNz)LjFuEJ`< zOBG^)unzMQ#pxCfsL-s=-;bg!>ZuHs&_R~lY~5>^%UB8|R2f`8^Fx!X|CDn2QJwY| zZu>om%PixsRgEj@PtVJLj?tNMV|e-!k8|i2n)S_j^swH2c5ZCf4|N~jx&6cAp_NGE zDM>;~Zu8+B6KoByY1_bf2C>(O)I<)=&$g3A!F(Axs$pfhlA9AOG5&hZ?UtcgXAWME zyD6>Id(S0RmlM>%D6x+`ht-ahh-VGKLc?nluYAncDCVN#2DvuTs}B6BoY^`oPP)#zvu3DYl< zrS}Ld9(}NdT-C-wtLAPVwkoD`m=;4u>!n5GT-O!1A79pbfE#?F?Ei>|0A}``!k9bR zSJ3~u!U5!T!^rhTJpMq7tzpD5?7?>~ZdKcGP;&PL&~ccAL+IOu&KgQiyN%MfpM`cA z5iTiQ!`Wd$wGZGJS>G0zBREzA)8=OO!vcM`oqeb$@S9=foM&O;82tg)$MMnZ*@PBa z2KOELC3Y4Y%kzQor7F0}*O(#e{Q)LY0pwfS2Df>t?d3f^NTtqnI+sP~&Vwoa0w*qH zL(kGLy@)_U^5_M9M{fD|z4VF%P8}@{EZz3oq3H<6n}Sf4=4D`hcD}Sp9$n9_=apbq ztFXagZDhH#zxba3{jb0MVOZ3w$xfcSxXZS`(bUfTg&_0%DQ>|#FSDYwz3bsS09^Et zSao+P!w`R3jZ&G8t}SMP{P67Y!|!`?SSbd^p(uB+S$S#f_@7xaN5@im9gNg5P#7Ka$lWaJ#=+y*d3sZ7h+m@;+2CRQ6D;w zQ8!t!AxGL8rl~`zvUOTIgUl4559~a`2NGYF1n@2hLC!7#pIqPS!psZ-oq1|6!Uv{jZ(Q|N4ZuAWxChtQlfCky)+9GNH#pj(PP-`1I0sOHFMs8Kc^4;Mgq}1a|8rgAF zr6$IS{!5UPJ#b6I)^wSwksvZ=o6<`1#Lja|(DK>$n#tN|Yer4Uj}jT@$C}l@YUU%d z(~GOR0KJ#5dzKZ(1_brxTl&1ICp$mngB!JJ zFN)~|&TesPvQ8K#U)xsq=tS$8H-sf9x$^KsUAaT0`9bIuJJ+;6Y^)-Ba?y1vfBD_t zZm8j{6{B6f9a#V9y9El(1_)*Mcx-4N=py=5_())A>YURjY;}F)a3Dv!06vv4|l2tGh3k?ORoZxmk1P?A^jn#lge!ZK=)Q0I0YXr-P0^ntB^a?EQUiG5zeI=sjp~hC(lS>)Qq8F-`93ZAKUbNr}zoJ->g|K zEo2lTDM##L59Q> z6}kXD&-JYrRk#bVq%1+@ea*7 z1~!PfODu2S1KX)*MO9*2F75p@rN#RPT;0yGABH?Dd)me-9Vzbsoa8M69cH#AxP_VN zn*B2&I;uK4Jg4zam=`N9%8Rpi0Oe|{N56T(Ck*ZU6weQ2LOU??Dwpl6;dZWLmUXRf zv3-0U8s~fV)0kfp)F21yv#XB3*$itnjK~5*YApwp={rzc14FLsHd`CCLh3O)7_G*= zR{KQ{cu4$qUF216s|A~zn~oozj6MPu{zK7uAJ~tc;HD_#P-y4j7~7@l!itZNxP zMGWtAdbwR>@H8BV$@k+I{p!8ZfHQ6BlNO~7YP~dhxdBK0N7pPCvZ+3=)!a@!vP!KV z)17XQ&qhjXajhAXoB1grBm3l5mD%1N?!!l8uOy>BPQ;?h$Ig-T-ONg3Ee!tj>R}ck z-!MC_-5*yLmzTqR?nnO!9^o%%@Ol*B4#0N*6`xG?c!$Vgwp-LK)q3dW<~-+E&=Zaz z7B7*uwGx@@o1WBAmK>3;a~-MW_2QDu!sh5(ole1J%AUlLJAiSt%uS+g&~#-e^Ug$@ zY~GI~Zq#0pE6q1&LNPVdLc{EoB|-1QEMMO%ahd<#irq7Kb_?ZSowek2`Vj&jv-83S zI3u^ApR3jN`^XuW!B)6bvz4jVHC;|`?H|lWczWiQA#3gDtO*FE$`_J~!aB69AoML{ zcK{Y&QO*OR?F57q_occMLgdJhWKHPX=*cRH`(GN+plh9LS<@V&t4Bn?ezWef!&b3B zUjPQ0S|9aofoH^J+ypru8IfLCr|$D+9ygcWp(I)HPZl7pgJ+a1CwgjW1U!p6pKWxU z>@YdcDm!Ve#^POo$Oi{&WiYqgGA49sw0dEk1JHSD&p)F0;rwEj+dmf4tfcE-V znR@WN@W6oCn7HGr3(;x7l=G!WihL?Pt3%OO$a7xm6a_^LIoz1cu-}1@Xr*3b_Nv`l zuvHdTFn9;JN_{PyHK3y^j0dN|SvpA=UW-x2dmt10zAx?8?Xhs131u&er{8BHhd~0Zb zXKEh8dGC}~8|QmP>zQ`l6bvS4^d%v~otCjgr7jljFB2Dkm;U6bb^-ci^HKSLMi2 zMkBp$BeI6A*b8NCS3%O1+&?Rd_Xz%<#5;U@s=OMJ#($Bnxi}^8fE509?gEHx@|lQdpCT$EG#r1R@% z$WqaaVPZvlUtZ~d>c1=gbhjeLcB$f2SyK-n z`6*-mI-H|^bAOTsPZ*cUy>#v3M1s^FulmKuR9l9&(Nv(O%@=`umZd}>Z8xvKF6(}> z&neIAdR1spJh031(k$+Z=@Czk;>%GAU-t~}2&XXA&Yg3oKmn%)!e03>RaFKJ^L!D( zYD#t96HzwH%)GkUqC((4dwL{@4NvivS?Rq@#rpNPI`BIe(E_B`A23ZlqmLD2T78HW z%eUnZtdb?(!i#6;Misec{VH%My3`>x2xSTz3|P}z)vgCNUN1TxlA^Y@Ekz$+t5*47 zclLgYWb9!k8ihuE6nMGwt3aU|^`OHn%1*=S=Q(m3R`K7&?0z~Dms%8h>p!~TuX(bj zd5?MV@D!93JA2JCBdWwnQ9<3crbx#CmXt5m9NZ(-kyOOtU+r3^cYsr0m3#Wndik9Y zZquim1Z}^3)&D$QP4sEpyPv&qGlx_UfIz(T5;7ArTT!(@xJ_vL^CG9d13^FiVBcPv zX^QA-k-_+lt^(l-vizP*$Dx$xC6Q1a%*K=_;7k9h%!#KdN8?}>IazbCtl+Sb5I!y4 zp56L1+`w7>CqNW58fd6z>hX2g&XXuFpUJrUcCe_J)h(v|*w;)GG$1@&DXkcwz7kKx z?U}Hl>dY2(Cg*XXIdpk!d13mqL5r88-onKRK^D!lEWjj|iHcnzby0{HXy z%?$R0Ks}z?xMp|j4oo`C3`K?P$YF6`QmD&Pue+mql+h_PaL92^mnP%?5SC4l6xfa3 zdkf|{{+x1Z`G)PXWb=0w$Ufi^;H`CZ9suH&!;D6gcA(QEK5m909i$#{TNSU#)=urP zIHK^f3j$-~&jkH`!ZE&sAO}HiQBhfu)4=maUO9(G*&})SHnro!?u8-K^#}FY{~lOH z#`dlk^rRLRX=hVtlY`&4@UW$vz5UchFE+GPWhz_eKGgbGU<%NEvRU5PaJi=-sldM= z2Mau6%DgHHvJ7TGj$Rqz#Ot`l)0{gJxYVLJmDJ5L9dY?NJAMGwWnnVd(Ui3cPE@Ke&q0#E%dajNTtp;!dV)#G zOgefP#Q_G8J7-z2Uk&@{DVr{pmgUuby8~d>Gb9MRg1j_j7RKA>7a1wTWSW*fL=<4w zf}U{7Kafl|DNMdTQt9>RqqzfwbUk!N{=z}VMaW#HRY5FddIzv>w*&2JynD#oZ2|^Su00RR3$Ee(=}Opv4gvmiEWy*(w~X+ zn@~0V5nL6BWK{~%@JU@}(1oWEJG$$wdq~t%XztrzOWTvXITUGI8$ zGjXqskYDC-2mHr6bSn=YPK`|%9nbLc6(z60Q~+$d<4CahbYnm;k3niRqp zbUcXK_=6Ee0oe-P&bOH)XFBL$EN|@B=K1$tx~rYr^@_CCwC@((@)(wP@#=Xue5XnN zu#Um?!r(%eKCyRvvBa&h{fEi|@+a$;0Wiz(F;11L&O-sdpKeiWI~hX{4}WoTe-A?p zp{By)cy-U%7BN&q+lVsO^~gUs1g)QXm&mFt&@HQK(9t!4do%~UB~1#?o4u502Zybd zrrzE-?Jr=aReW016tx$Rujg2{px$3yvM?&L`8t4qnpSnM0ls=@iB;fqSVOUFta3oU zM+1fv)b#72gj6Kti*7;$PI|pd&rU=|QVu9a!rxnsR_7l@HwKJp0;`fY$sr!Lrh*Y$ zt<4bd#8V=nBi`cBrOpc&IWie-L3g1MeOh|Xvfk~*&#lZuNB(JA=5m@q_;~EkW3eK zQqpK(DXi0*Pm_rOBfPacRwBuq6Rn1F*$1M2vZ^kJVMIGIsmQMBmbAVS0spi^^A>0O z4VDC7g@N{uC)(VPPM&OL8cZa5qNdAQMvpjmnI)0h#A3Q_na#Fu=b9YUI+z9c_d@}q zyZpOzQq>B`WGYilm&@G!OtPwCd2Xkh-=G`smai3RV36{MzpfWb*9Urbk!D5)hFn=S264#V}$~kBxQu%zSe6zpv8xZ&&rt zWWRU2N;+|i61Oev#UJDOy6FJ5Cn1tU?dn`PUOr2{;D8H60Gpa&i(ZqYIw=+S=j0i+ z3^ZFe(RAZF9o-@C!k04jL^C~x89=l~L601sjSBYVZl)c^n` z001noxXA!4ZZJ}c|%)?c!r+<06IE5Uk)W- zElGTtnyOk_bv9Fw001{9C{8^`b#H;24n34KV4GolrL7Ds#{d8i8%ab#RCt{2opEED zNEX0F2m&GqiV6r4Td-*b$Jk&|y~I9`)?U7_tzyo8wRW)Yly;C{;= z<+UBxXe*p45Pi4MXUJ`x%y2ub&z9inSbe-KCwPU&&Qm+9&z9giXy!L@_1bR`W$vUh z+e7>U)GsVzM~Vzqwq6SvJ&d-A9f?%Z+0qUwvpq@xGj?cMj)@JzY`*9jq3md-Tu^9; zE!Nxs&zO$iXjJxgyLH(jU<=Kxk&dI|<>y;Ie!IK6LeT@mt6O#tgrjBqEcbC z()-Yw!9As&Ox$d*D%+$;)qivORv^x|SC?%vqG~RVw%COSp|sIuAn(?Zkq+Dqqp2#E z(XyMu2CD?VR_X0Ax5t?)_X24kgcchopkw#pt0kcjx+Xm+1XS5hUABm>;7yMr zd;EvV*Yg>pD{0dA!-+k?+~Hg_avBtqwzv`{yb1kE~(c(OpXm6S?)kM`uj8 zaKjSq=mx7~e9Z`YcxHt9YVJrI!~KiW{13za{%4TK1t-v^uYwws_b<2npXkTWAA;<_ zRn(5Z>1m_(j+o`gPiOzIO4}gUMSZ$iZEAz|o~X-U8?~CJ1NuyfLffxfmn{NTfw9kq zDWM@s_u!1Y-zW-ygg(4#UAD>axa`;H))~M(0=GvXUjW}h6wbgxvm`1*hUvGgZp22f zSe32Pgsy$tRJw6g4N0I$6psAI3dJrOmX)Fsobhjph&9}|4h%S>=mwJHjIhX!bRo|$ z>Qd=)SmZ9oaMOS3)LmHQ{+8S%A`Vv3T96%T-=qdmZ-7Hf_1L!cwEi!_+(G4MyTgH^lhO35V!jR$8hc-;Dp2+>&-YHJ! zOQm6v+rJ52?BW~dZD`c2pXc;a|LbEsL0}jubbI?YrOW9}XQg&NW2X2@H=aH@AxHp= zMzJUa4fbqq>%ol;z3CE4SHDCPQIZhK7tNb?yL~eY)LtohKFOGyloucFS&|iuMnzuHWlc44HL=~rebI25y2;Kc@j-z}mdu{> z)=sS@;bx>bQk45juopMGEBIkYQ}sKG@t08&t=(|51rvKTuBozuAYAiEJIZ3g z*Kqyxg|Bj;rm&cy%~Syo*cU{>%QUNG%KX&LfzyFc+(neAuiYZzSD4I?<~>8E?0zV6 zf1=#g%;}$%bUN_sNJU8S6F`DQaK3+ejQ0uedOSQnh-^+ z3m2?SF}C&|M(@V+p2LxF^~crlbr?Yn&oZf20?XenJ)Vg_X6q!k^xegL`Vs}A6L6Ci zQ83S;D2|SW)vXr~d7Iq1Zn^w?4e7u}z-Mq#h?^coiUTNSNkOaRZF)`aju%$`0A>Pi ztQIA&P)kW5;?^C}-;ZqLyER@MfB|*_FSl0cxEB~gWY)I-y@?u@I8$+SzG!Zw3p*=I zP76xv;=p6Zk!hT|u#MFgZcWr|{oPoIBr4>~_~wSC7q^XLl2kAzb}j*!Zr{s5Hh*hV z&0vGEtP|;tyCtVi6v(+g&;7!}Dy+<{w-yis@_`7-$ZFkfTZIh8opSlWfnkxm_xJKP zd5(z=W+skYCdimT%*}NUN6T3?5Sec!)op=~Gcd;##%X)6jNh|HW7)aUv)IgTIg4RJ zSu^_p(V0GmZ))c|qXuFRbwA-^wG@^3k>lu3-DPUaV;*dc>E(hvFmvg70;6xHzqho{=C1}1rZYKhubI-Tk}xFOlGC_=VN9iWMe{8AFqPdhTL3w zeF*d+5nq?oz-2Pay;W~C;wwL6Qh*jYBZ%jGSHy@iDfzh0M|fz1pw{c5sm!`*WvF6n zH&Ybz^m0#Vj=QVrY&R(0ey=26?gu-NF>D=AT6!Y)hB50`p+&9pA2>X|{@^YCczIz- z@096PGpvcy-!Bv7VhBy-{?<8`XL1L?GY32CMjJT7sPzrQQ}jY6u-OnSdkmYDF~|~2 zKRv+8=b7oQa-M<$V6f%zbxvqWrCc(Wh7`VtpB4YETAh?Cr3mrmi+6xw%zFJ~h6_OE zItQ&efd;t;+;)(dz*0E1`FG8_D|!%%3&66$(}@YtOt%N4y=C>tS#^C&qHgAe2GB3= znAjM1Ev9a&oQ-E!_AZpkxH@b8;xQF~_Aaf7t?5+Obz@u;Us$D;aoMV=M1vGo;xQ>B zO4MieaFGgvL)KTFo$s$0?pnKQ<|X}!yX)AdLj5Q%tXSb9O{h;=lB1{q*yjV)(TFHw zS=a1Eq?373di^`WHX`ICxw-_yLBvxxkK{7c?(K8LaGp&2i6hhPzMPSHP87&>%68SL zB`pUynMsls=l_zj%$)DHA9&?3N7ICd$ZOYSJ<+H?%Vl;M`_6;QG`#vOv?MT(r>Cw_ zOK!!_+YiK@L5?RSj$n`7VLFqU4^pI2#%({L6R@x)N~JKcU*w?d*nV||R({@3Muz=-fYd!E)Le8`lgcli%J9Q3qKtj1Z@*Yl0gt+X zU-F$Ps&j3Stz_3Gd=E;>rY8sa=vCa_ezkE_1L?Rx}|9Hvfp}?PIvN}2n3%-wJqFY zsMkV{RK ztE_P3oy#O%-Q50kwWFnCgiP4v7E!=66}_6DY4L}=!&W;Ei{n8*!-#|Ja+e^=tMlc$ z^i=aroKXh>+X(>(LZH|UE}68+-BUdi6}Wn48a|beoi-^{fOy~!jpiW8DmQqaa4_Lk zk*S$F??Hlt0-VSl_?@G=YLi>U6P{uH_UxShR3}$VCt zRp)#Ra1tIJ9>=X}e^jnxDEIEy7a)1{E<1Sx0Cqk@d1#kZ!)5if}9&^h~X_ zh(f~JWS5DqSDvAcqpgW6M-Wy;!2SHMA6U6p1X0o!J2Q0;d7jH+Qu(XNt!&i#%zl6K z_Wcj6-RproN|wQ#%X%O9TtO%5oD=d^ZO*@a`&YmXwK=Ir$y~iMnZ`_~lFPIhT92g0 zwinO+`R2_ZKdfr6%cW$QigXqBGPb}0JzY9WS)2C#+c*CX{$83VMg@y0JuF1M!kZ$^ z)ErbF^6xiqH##X{m)uI0<*`y)@S2=>ly+L+`sK}=9V`I+L)xbnWBj4uv0^Z>&SOUo zcG|!Gdi#686YZBUPc6;+;1pP18FjQPsOz4VV?6s zba7B_>QjNZ*}FbILzYgLB-N8ikJ!-_ee_aZyezOm4;imRjKWKS22S;wkgAKtkm94X zZ|Br3(S(zW0m|6}tg9df{ye<@5PAo4ff0W@O zXG+@FJB)%)MS8YY`vu&^{z8h1~pNS*fNGm9YxitqpUq`W&}Kf>XA zIqnm3Lpk|)^7wOasOuc3>&0QI|LKvC-W8;5M_@fu0`?YAW?4l#l}_JHIGrL%38pi; zmBmpOHg{dUS42r)aI*H$YqdtBR;yCcczrfqi)o>}>$<%rJ*n$_JxZF}t;u#dlL}5# z6$c4US$g3i7nhutiuy;{eGMV{q~){}%qQ2KXc8J^NwRfxaKO@g97FU)j4qM|D*P~SPki+#xbB*O5J`YtRQymAr`!U0-aAxFOmUXs}VlU_chWXyf-p(H3Fi5mN&H2VDW z+559k61k&2oVx=2bb9(uf(zCEpHBWns;>}2OAb-6+%LIY*nN=$2M!!KaNxj!0|yQq fIB?*=0cZXTs9>vXutolS00000NkvXXu0mjfBWN + + + Exe + net8.0 + How_to_apply_multiple_signatures_to_a_PDF_in_C_ + enable + enable + + + + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + + + + + + diff --git a/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Output/.gitkeep b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Output/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Program.cs b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Program.cs new file mode 100644 index 00000000..36ba2aa2 --- /dev/null +++ b/Digital Signature/How-to-apply-multiple-signatures-to-a-PDF-in-C#/How-to-apply-multiple-signatures-to-a-PDF-in-C#/Program.cs @@ -0,0 +1,59 @@ +using Syncfusion.Pdf; +using Syncfusion.Pdf.Graphics; +using Syncfusion.Pdf.Parsing; +using Syncfusion.Pdf.Security; + +namespace Create_PDF +{ + class Program + { + public static void Main(string[] args) + { + //Register your Syncfusion License Key. + Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("Your License Key"); + //Load the PDF and call the SignPDF method. + FileStream fileStream = new FileStream("Data/Input.pdf", FileMode.Open, FileAccess.ReadWrite); + MemoryStream outputStream = SignPDF(fileStream, "signature1", 0); + //Call the SignPDF method again for second signer + MemoryStream outputStream1 = SignPDF(outputStream, "signature2", 1); + //Save the final multi signed PDF document + File.WriteAllBytes(@"SignedDocument.pdf", outputStream1.ToArray()); + } + + public static MemoryStream SignPDF(Stream inputStream, string signatureName, int pageIndex) + { + // Load the PDF document from the input stream + PdfLoadedDocument loadedDocument = new PdfLoadedDocument(inputStream); + + // Get the specified page + PdfLoadedPage page = loadedDocument.Pages[pageIndex] as PdfLoadedPage; + + // Load the certificate + FileStream certificateStream = new FileStream(Path.GetFullPath(@"Data/PDF.pfx"), FileMode.Open, FileAccess.Read); + PdfCertificate certificate = new PdfCertificate(certificateStream, "syncfusion"); + + // Create the signature + PdfSignature signature = new PdfSignature(loadedDocument, page, certificate, signatureName); + signature.Bounds = new Syncfusion.Drawing.RectangleF(400, 740, 90, 20); + + // Choose the image based on the signature name + string imagePath = signatureName == "signature1" + ? @"Data/Student Signature.jpg" + : @"Data/Teacher Signature.png"; + + FileStream imageStream = new FileStream(Path.GetFullPath(imagePath), FileMode.Open, FileAccess.Read); + PdfBitmap signatureImage = new PdfBitmap(imageStream); + + // Draw the image in the signature appearance + signature.Appearance.Normal.Graphics.DrawImage(signatureImage, 0, 0, 90, 20); + + // Save the signed document to a memory stream + MemoryStream outputStream = new MemoryStream(); + loadedDocument.Save(outputStream); + loadedDocument.Close(true); + outputStream.Position = 0; // Reset stream position for next use + return outputStream; + } + + } +} \ No newline at end of file