{"id":128,"date":"2026-02-08T18:30:26","date_gmt":"2026-02-08T18:30:26","guid":{"rendered":"https:\/\/assistant-employees-union.sabpro.in\/?page_id=128"},"modified":"2026-02-09T04:47:26","modified_gmt":"2026-02-09T04:47:26","slug":"%e0%a4%85%e0%a4%aa%e0%a4%a8%e0%a4%be-%e0%a4%86%e0%a4%88%e0%a4%a1%e0%a5%80-%e0%a4%95%e0%a4%be%e0%a4%b0%e0%a5%8d%e0%a4%a1-%e0%a4%a1%e0%a4%be%e0%a4%89%e0%a4%a8%e0%a4%b2%e0%a5%8b%e0%a4%a1-%e0%a4%95","status":"publish","type":"page","link":"https:\/\/assistant-employees-union.sabpro.in\/?page_id=128","title":{"rendered":"\u0905\u092a\u0928\u093e \u0906\u0908\u0921\u0940 \u0915\u093e\u0930\u094d\u0921 \u0921\u093e\u0909\u0928\u0932\u094b\u0921 \u0915\u0930\u0947\u0902"},"content":{"rendered":"\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n\n<style>\n*{box-sizing:border-box;font-family:Arial}\nbody{background:#f2f2f2;margin:0}\n.box{\nmax-width:520px;\nmargin:15px auto;\nbackground:#fff;\npadding:15px;\nborder-radius:8px\n}\ninput,select,button{\nwidth:100%;\npadding:8px;\nmargin:6px 0\n}\nbutton{\nbackground:#0b5ed7;\ncolor:#fff;\nborder:none;\nfont-size:16px\n}\n.hidden{display:none}\n\n\/* PROFILE *\/\n.profile{\nbackground:#e9f2ff;\nborder:1px solid #0b5ed7;\nborder-radius:6px;\npadding:10px;\nmargin-bottom:10px\n}\n.profile h4{margin:0;color:#0b5ed7}\n.profile small{display:block}\n.logout{background:#dc3545;margin-top:6px}\n\n\/* PHOTO *\/\n.photo-box{\nwidth:90px;height:120px;\nborder:2px dashed #000;\ndisplay:flex;\nalign-items:center;\njustify-content:center;\nmargin-top:8px\n}\n.photo-box img{\nwidth:100%;\nheight:100%;\nobject-fit:cover;\ndisplay:none\n}\n.photo-hint{font-size:10px;color:#555;text-align:center}\n\n\/* RESULT *\/\n#result{display:none;text-align:center;margin-top:15px}\ncanvas{border:1px solid #ccc;max-width:100%}\n.download{background:#138808}\n<\/style>\n\n<!-- REGISTER -->\n<div class=\"box\" id=\"registerBox\">\n<h3>Register<\/h3>\n<input id=\"r_name\" placeholder=\"\u092a\u0942\u0930\u093e \u0928\u093e\u092e\">\n<input id=\"r_mobile\" placeholder=\"\u092e\u094b\u092c\u093e\u0907\u0932 \u0928\u0902\u092c\u0930\">\n<input id=\"r_email\" placeholder=\"Email\">\n<input id=\"r_pass\" type=\"password\" placeholder=\"Password\">\n<button onclick=\"registerUser()\">Register<\/button>\n<p style=\"text-align:center\">\n<a href=\"#\" onclick=\"showLogin()\">Already Registered? Login<\/a>\n<\/p>\n<\/div>\n\n<!-- LOGIN -->\n<div class=\"box hidden\" id=\"loginBox\">\n<h3>Login<\/h3>\n<input id=\"l_email\" placeholder=\"Email\">\n<input id=\"l_pass\" type=\"password\" placeholder=\"Password\">\n<button onclick=\"loginUser()\">Login<\/button>\n<\/div>\n\n<!-- MAIN -->\n<div class=\"box hidden\" id=\"mainBox\">\n\n<div class=\"profile\">\n<h4 id=\"p_name\"><\/h4>\n<small id=\"p_email\"><\/small>\n<small id=\"p_mobile\"><\/small>\n<button class=\"logout\" onclick=\"logoutUser()\">Logout<\/button>\n<\/div>\n\n<h3>Support Staff Association \u2013 ID Form<\/h3>\n\n<input type=\"file\" id=\"photo\" accept=\"image\/*\">\n<div class=\"photo-box\">\n  <img id=\"preview\">\n  <span class=\"photo-hint\">Passport Size<br>3:4<\/span>\n<\/div>\n\n<input id=\"name\" placeholder=\"\u0915\u0930\u094d\u092e\u091a\u093e\u0930\u0940 \u0915\u093e \u0928\u093e\u092e (ID \u0915\u0947 \u0932\u093f\u090f)\">\n<input id=\"aadhaar\" placeholder=\"\u0906\u0927\u093e\u0930 \u0928\u0902\u092c\u0930\">\n<input id=\"mobile\" placeholder=\"\u092e\u094b\u092c\u093e\u0907\u0932 \u0928\u0902\u092c\u0930\">\n<input type=\"date\" id=\"dob\">\n\n<select id=\"designation\">\n<option value=\"\">\u2014 \u0915\u0930\u094d\u092e\u091a\u093e\u0930\u0940 \/ \u0905\u0927\u093f\u0915\u093e\u0930\u0940 \u092a\u0926 \u2014<\/option>\n<option>\u0938\u0939\u093e\u092f\u0915 \u0915\u0930\u094d\u092e\u091a\u093e\u0930\u0940<\/option>\n<option>LDC<\/option>\n<option>UDC<\/option>\n<option>\u0938\u0939\u093e\u092f\u0915 \u0905\u092d\u093f\u092f\u0902\u0924\u093e<\/option>\n<option>\u0905\u0927\u093f\u0936\u093e\u0938\u0940 \u0905\u092d\u093f\u092f\u0902\u0924\u093e<\/option>\n<option>\u0905\u0927\u0940\u0915\u094d\u0937\u0923 \u0905\u092d\u093f\u092f\u0902\u0924\u093e<\/option>\n<option>\u092e\u0941\u0916\u094d\u092f \u0905\u092d\u093f\u092f\u0902\u0924\u093e<\/option>\n<option>\u0915\u0932\u0947\u0915\u094d\u091f\u0930<\/option>\n<\/select>\n\n<select id=\"role\">\n<option value=\"\">\u2014 \u0938\u0902\u0917\u0920\u0928 \u0915\u093e \u092a\u0926 \u2014<\/option>\n<option>\u091c\u093f\u0932\u093e \u0905\u0927\u094d\u092f\u0915\u094d\u0937<\/option>\n<option>\u0935\u0930\u093f\u0937\u094d\u0920 \u0909\u092a\u093e\u0927\u094d\u092f\u0915\u094d\u0937<\/option>\n<option>\u091c\u093f\u0932\u093e \u092e\u0902\u0924\u094d\u0930\u0940<\/option>\n<option>\u091c\u093f\u0932\u093e \u092e\u0939\u093e\u0938\u091a\u093f\u0935<\/option>\n<option>\u0938\u0926\u0938\u094d\u092f<\/option>\n<\/select>\n\n<input id=\"dept\" placeholder=\"\u0935\u093f\u092d\u093e\u0917 \/ \u0915\u093e\u0930\u094d\u092f\u093e\u0932\u092f\">\n<input id=\"district\" placeholder=\"\u091c\u093f\u0932\u093e\">\n\n<button onclick=\"submitData()\">Submit<\/button>\n\n<div id=\"result\">\n<canvas id=\"cardCanvas\" width=\"360\" height=\"240\"><\/canvas><br>\n<button class=\"download\" onclick=\"downloadPDF()\">\u2b07\ufe0f PDF \u0921\u093e\u0909\u0928\u0932\u094b\u0921 \u0915\u0930\u0947\u0902<\/button>\n<\/div>\n<\/div>\n\n<script>\nlet currentUser=null;\n\n\/* AUTO LOGIN *\/\nwindow.onload=function(){\nconst u=JSON.parse(localStorage.getItem(\"ssa_user\"));\nif(localStorage.getItem(\"ssa_logged_in\")===\"yes\" && u){\ncurrentUser=u;\nshowMain(u);\n}\n};\n\n\/* REGISTER *\/\nfunction registerUser(){\nconst user={\nname:r_name.value,\nmobile:r_mobile.value,\nemail:r_email.value,\npass:r_pass.value\n};\nif(!user.name||!user.email||!user.pass){\nalert(\"\u0938\u092d\u0940 \u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u092d\u0930\u0947\u0902\");\nreturn;\n}\nlocalStorage.setItem(\"ssa_user\",JSON.stringify(user));\nalert(\"Register \u0938\u092b\u0932 \u0939\u0941\u0906, \u0905\u092c Login \u0915\u0930\u0947\u0902\");\nshowLogin();\n}\n\n\/* LOGIN *\/\nfunction loginUser(){\nconst saved=JSON.parse(localStorage.getItem(\"ssa_user\"));\nif(!saved){alert(\"\u092a\u0939\u0932\u0947 Register \u0915\u0930\u0947\u0902\");return;}\nif(l_email.value===saved.email && l_pass.value===saved.pass){\nlocalStorage.setItem(\"ssa_logged_in\",\"yes\");\ncurrentUser=saved;\nshowMain(saved);\n}else{\nalert(\"\u0917\u0932\u0924 Email \u092f\u093e Password\");\n}\n}\n\n\/* SHOW MAIN *\/\nfunction showMain(user){\nregisterBox.classList.add(\"hidden\");\nloginBox.classList.add(\"hidden\");\nmainBox.classList.remove(\"hidden\");\n\np_name.innerText=user.name;\np_email.innerText=\"Email: \"+user.email;\np_mobile.innerText=\"Mobile: \"+user.mobile;\n}\n\n\/* SHOW LOGIN *\/\nfunction showLogin(){\nregisterBox.classList.add(\"hidden\");\nloginBox.classList.remove(\"hidden\");\n}\n\n\/* LOGOUT *\/\nfunction logoutUser(){\nlocalStorage.removeItem(\"ssa_logged_in\");\nlocation.reload();\n}\n\n\/* PHOTO *\/\nlet imageData=\"\";\nphoto.onchange=function(){\nconst r=new FileReader();\nr.onload=e=>{\nimageData=e.target.result;\npreview.src=imageData;\npreview.style.display=\"block\";\n};\nr.readAsDataURL(photo.files[0]);\n};\n\n\/* ID CARD \u2014 NAME FIX 100% *\/\nfunction submitData(){\nif(!imageData){alert(\"\u092b\u094b\u091f\u094b \u091a\u0941\u0928\u093f\u090f\");return;}\n\nconst formName=document.getElementById(\"name\").value.trim();\nconst finalName = formName !== \"\" ? formName : currentUser.name;\n\nconst ctx=cardCanvas.getContext(\"2d\");\nresult.style.display=\"block\";\nctx.clearRect(0,0,360,240);\n\nctx.fillStyle=\"#ff9933\";ctx.fillRect(0,0,360,30);\nctx.fillStyle=\"#fff\";ctx.fillRect(0,30,360,180);\nctx.fillStyle=\"#138808\";ctx.fillRect(0,210,360,30);\n\nctx.fillStyle=\"#000\";\nctx.font=\"bold 13px Arial\";\nctx.textAlign=\"center\";\nctx.fillText(\"SUPPORT STAFF ASSOCIATION\",180,20);\n\nconst img=new Image();\nimg.onload=function(){\nctx.save();\nctx.beginPath();\nctx.arc(70,105,30,0,Math.PI*2);\nctx.clip();\nctx.drawImage(img,40,75,60,60);\nctx.restore();\n\nctx.textAlign=\"left\";\nctx.font=\"bold 14px Arial\";\nctx.fillText(\"\u0928\u093e\u092e: \"+finalName,120,70);\n\nctx.font=\"12px Arial\";\nctx.fillText(\"\u092a\u0926: \"+designation.value,120,90);\nctx.fillText(\"\u0938\u0902\u0917\u0920\u0928: \"+role.value,120,110);\nctx.fillText(\"\u0906\u0927\u093e\u0930: \"+aadhaar.value,120,130);\nctx.fillText(\"\u091c\u093f\u0932\u093e: \"+district.value,120,150);\n\nctx.fillStyle=\"#fff\";\nctx.textAlign=\"center\";\nctx.font=\"11px Arial\";\nctx.fillText(\"Mobile: \"+mobile.value,180,230);\n};\nimg.src=imageData;\n}\n\n\/* PDF *\/\nfunction downloadPDF(){\nconst {jsPDF}=window.jspdf;\nconst pdf=new jsPDF(\"p\",\"mm\",\"a4\");\npdf.addImage(cardCanvas.toDataURL(\"image\/png\"),\"PNG\",25,35,160,110);\npdf.save(\"SSA-ID-Card.pdf\");\n}\n<\/script>\n\n\n\n<script src=\"https:\/\/unpkg.com\/jspdf@2.5.1\/dist\/jspdf.umd.min.js\"><\/script>\n\n<style>\n*{box-sizing:border-box;font-family:serif}\nbody{background:#f2f2f2}\n\n.form{\nmax-width:650px;\nmargin:auto;\nbackground:#fff;\npadding:15px;\nborder-radius:6px\n}\n.form input,.form textarea,.form button{\nwidth:100%;\npadding:8px;\nmargin:6px 0\n}\n.form textarea{min-height:140px}\n.form button{\nbackground:#0b5ed7;\ncolor:#fff;\nborder:none;\nfont-size:16px\n}\n\n#result{\ndisplay:none;\nmargin-top:20px;\ntext-align:center\n}\ncanvas{\nborder:1px solid #ccc;\nbackground:#fff;\nmax-width:100%\n}\n.download{\nmargin-top:10px;\nwidth:90%;\npadding:10px;\nbackground:#138808;\ncolor:#fff;\nborder:none;\nfont-size:16px\n}\n<\/style>\n\n<div class=\"form\">\n<h3>\u0938\u0930\u0915\u093e\u0930\u0940 \u092a\u0924\u094d\u0930 \/ \u0906\u0935\u0947\u0926\u0928<\/h3>\n\n<input id=\"officeHead\" placeholder=\"\u0915\u093e\u0930\u094d\u092f\u093e\u0932\u092f \u0936\u0940\u0930\u094d\u0937\u0915\">\n<input id=\"officeSub\" placeholder=\"\u0915\u093e\u0930\u094d\u092f\u093e\u0932\u092f \/ \u091c\u093f\u0932\u093e\">\n\n<div style=\"display:flex;gap:10px\">\n<input id=\"refno\" placeholder=\"\u0915\u094d\u0930\u092e\u093e\u0902\u0915\">\n<input type=\"date\" id=\"date\">\n<\/div>\n\n<input id=\"toWhom\" placeholder=\"\u092a\u094d\u0930\u0924\u093f\">\n<input id=\"toOffice\" placeholder=\"\u092a\u094d\u0930\u093e\u092a\u094d\u0924\u0915\u0930\u094d\u0924\u093e \u0915\u093e\u0930\u094d\u092f\u093e\u0932\u092f\">\n<input id=\"subject\" placeholder=\"\u0935\u093f\u0937\u092f\">\n\n<textarea id=\"body\" placeholder=\"\u092a\u0942\u0930\u093e \u092a\u0924\u094d\u0930\"><\/textarea>\n\n<input id=\"name\" placeholder=\"\u0928\u093e\u092e\">\n<input id=\"post\" placeholder=\"\u092a\u0926\">\n<input id=\"dept\" placeholder=\"\u0935\u093f\u092d\u093e\u0917\">\n<input id=\"district\" placeholder=\"\u091c\u093f\u0932\u093e\">\n\n<button id=\"submitBtn\">Submit<\/button>\n<\/div>\n\n<div id=\"result\">\n<canvas id=\"letterCanvas\" width=\"595\" height=\"842\"><\/canvas><br>\n<button class=\"download\" id=\"pdfBtn\">\u2b07\ufe0f PDF \u0921\u093e\u0909\u0928\u0932\u094b\u0921 \u0915\u0930\u0947\u0902<\/button>\n<\/div>\n\n<script>\nfunction formatDate(d){\n if(!d) return \"\";\n let x=new Date(d);\n return x.getDate()+\"-\"+(x.getMonth()+1)+\"-\"+x.getFullYear();\n}\n\nfunction wrapText(ctx,text,x,y,maxWidth,lineHeight){\n let words=text.split(\" \"),line=\"\";\n for(let i=0;i<words.length;i++){\n  let test=line+words[i]+\" \";\n  if(ctx.measureText(test).width>maxWidth && i>0){\n   ctx.fillText(line,x,y);\n   line=words[i]+\" \";\n   y+=lineHeight;\n  }else line=test;\n }\n ctx.fillText(line,x,y);\n return y;\n}\n\ndocument.getElementById(\"submitBtn\").onclick=function(){\n\n let c=document.getElementById(\"letterCanvas\");\n let ctx=c.getContext(\"2d\");\n\n ctx.clearRect(0,0,c.width,c.height);\n ctx.fillStyle=\"#fff\";\n ctx.fillRect(0,0,c.width,c.height);\n ctx.fillStyle=\"#000\";\n\n ctx.font=\"bold 15px Times New Roman\";\n ctx.textAlign=\"center\";\n ctx.fillText(officeHead.value,297,60);\n ctx.font=\"14px Times New Roman\";\n ctx.fillText(officeSub.value,297,80);\n\n ctx.textAlign=\"right\";\n ctx.fillText(\"\u0915\u094d\u0930\u092e\u093e\u0902\u0915: \"+refno.value,555,120);\n ctx.fillText(\"\u0926\u093f\u0928\u093e\u0902\u0915: \"+formatDate(date.value),555,140);\n\n ctx.textAlign=\"left\";\n ctx.fillText(\"\u0938\u0947\u0935\u093e\u092e\u0947\u0902,\",40,180);\n ctx.fillText(toWhom.value+\",\",40,205);\n ctx.fillText(toOffice.value,40,225);\n\n ctx.font=\"bold 14px Times New Roman\";\n ctx.fillText(\"\u0935\u093f\u0937\u092f: \"+subject.value,40,265);\n\n ctx.font=\"14px Times New Roman\";\n ctx.fillText(\"\u092e\u0939\u094b\u0926\u092f,\",40,295);\n\n let y=325;\n y=wrapText(ctx,body.value,40,y,515,22);\n\n y+=40;\n ctx.textAlign=\"right\";\n ctx.fillText(\"\u092d\u0935\u0926\u0940\u092f,\",555,y);\n y+=35;\n ctx.fillText(name.value,555,y);\n y+=20;\n ctx.fillText(post.value,555,y);\n y+=20;\n ctx.fillText(dept.value,555,y);\n y+=20;\n ctx.fillText(district.value,555,y);\n\n document.getElementById(\"result\").style.display=\"block\";\n}\n\ndocument.getElementById(\"pdfBtn\").onclick=function(){\n if(!window.jspdf){alert(\"PDF library load \u0928\u0939\u0940\u0902 \u0939\u0941\u0908\");return;}\n const {jsPDF}=window.jspdf;\n let pdf=new jsPDF(\"p\",\"pt\",\"a4\");\n let img=document.getElementById(\"letterCanvas\").toDataURL(\"image\/png\");\n pdf.addImage(img,\"PNG\",0,0,595,842);\n pdf.save(\"Government-Letter.pdf\");\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Register Register Already Registered? Login Login Login Logout Support Staff Association \u2013 ID Form Passport Size3:4 \u2014 \u0915\u0930\u094d\u092e\u091a\u093e\u0930\u0940 \/ \u0905\u0927\u093f\u0915\u093e\u0930\u0940 \u092a\u0926 \u2014\u0938\u0939\u093e\u092f\u0915 \u0915\u0930\u094d\u092e\u091a\u093e\u0930\u0940LDCUDC\u0938\u0939\u093e\u092f\u0915 \u0905\u092d\u093f\u092f\u0902\u0924\u093e\u0905\u0927\u093f\u0936\u093e\u0938\u0940 \u0905\u092d\u093f\u092f\u0902\u0924\u093e\u0905\u0927\u0940\u0915\u094d\u0937\u0923 \u0905\u092d\u093f\u092f\u0902\u0924\u093e\u092e\u0941\u0916\u094d\u092f \u0905\u092d\u093f\u092f\u0902\u0924\u093e\u0915\u0932\u0947\u0915\u094d\u091f\u0930 \u2014 \u0938\u0902\u0917\u0920\u0928 \u0915\u093e \u092a\u0926 \u2014\u091c\u093f\u0932\u093e \u0905\u0927\u094d\u092f\u0915\u094d\u0937\u0935\u0930\u093f\u0937\u094d\u0920 \u0909\u092a\u093e\u0927\u094d\u092f\u0915\u094d\u0937\u091c\u093f\u0932\u093e \u092e\u0902\u0924\u094d\u0930\u0940\u091c\u093f\u0932\u093e \u092e\u0939\u093e\u0938\u091a\u093f\u0935\u0938\u0926\u0938\u094d\u092f Submit \u2b07\ufe0f PDF \u0921\u093e\u0909\u0928\u0932\u094b\u0921 \u0915\u0930\u0947\u0902 \u0938\u0930\u0915\u093e\u0930\u0940 \u092a\u0924\u094d\u0930 \/ \u0906\u0935\u0947\u0926\u0928 Submit \u2b07\ufe0f PDF \u0921\u093e\u0909\u0928\u0932\u094b\u0921 \u0915\u0930\u0947\u0902<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-128","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/pages\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=128"}],"version-history":[{"count":7,"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/pages\/128\/revisions"}],"predecessor-version":[{"id":140,"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=\/wp\/v2\/pages\/128\/revisions\/140"}],"wp:attachment":[{"href":"https:\/\/assistant-employees-union.sabpro.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}