ਇੱਕ ਸਰਟੀਫਿਕੇਟ ਉਦੋਂ ਹੀ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ ਜੇਕਰ ਲੋਕ ਇਸ 'ਤੇ ਭਰੋਸਾ ਕਰਨ। ਜਦੋਂ ਕੋਈ ਸਿੱਖਿਆਰਥੀ ਨੌਕਰੀ ਦੀ ਅਰਜ਼ੀ ਨਾਲ ਇੱਕ PDF ਅਟੈਚ ਕਰਦਾ ਹੈ, ਤਾਂ ਇੱਕ ਹਾਇਰਿੰਗ ਮੈਨੇਜਰ ਨੂੰ ਕੁਝ ਹੀ ਸਕਿੰਟਾਂ ਵਿੱਚ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਇਹ ਅਸਲੀ ਹੈ। Laravel ਤੁਹਾਨੂੰ ਕਿਸੇ ਤੀਜੀ-ਧਿਰ (third-party) ਪਲੇਟਫਾਰਮ ਨੂੰ ਕੰਟਰੋਲ ਦਿੱਤੇ ਬਿਨਾਂ, ਖੁਦ ਉਹ ਭਰੋਸਾ ਬਣਾਉਣ ਲਈ ਟੂਲਸ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਬ੍ਰਾਂਡਿੰਗ, ਡੇਟਾ ਅਤੇ ਵੈਰੀਫਿਕੇਸ਼ਨ ਚੇਨ (verification chain) ਦੇ ਪੂਰੇ ਕੰਟਰੋਲ ਦੇ ਮਾਲਕ ਹੋ ਸਕਦੇ ਹੋ।
ਟੀਚਾ ਸਰਲ ਹੈ: ਇੱਕ ਪੇਸ਼ੇਵਰ PDF ਤਿਆਰ ਕਰਨਾ ਜੋ ਪ੍ਰਿੰਟ ਹੋਣ 'ਤੇ ਸ਼ਾਨਦਾਰ ਦਿਖਾਈ ਦੇਵੇ, ਜਿਸ ਵਿੱਚ ਤੁਰੰਤ ਵੈਰੀਫਿਕੇਸ਼ਨ ਲਈ ਇੱਕ ਸਕੈਨ ਕਰਨ ਯੋਗ QR code ਹੋਵੇ, ਅਤੇ ਇੱਕ ਅਜਿਹਾ ਵਿਲੱਖਣ ਰਿਕਾਰਡ ਸਟੋਰ ਕਰੇ ਜਿਸਦਾ ਅੰਦਾਜ਼ਾ ਨਾ ਲਗਾਇਆ ਜਾ ਸਕੇ ਜਾਂ ਜਿਸਦੀ ਜਾਲਸਾਜ਼ੀ ਨਾ ਕੀਤੀ ਜਾ ਸਕੇ। ਇਸ ਨੂੰ ਤਿਆਰ ਕਰਨ ਦਾ ਤਰੀਕਾ ਇੱਥੇ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਡੇਟਾਬੇਸ ਲੇਅਰ (Database Layer) ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ
ਸਰਟੀਫਿਕੇਟਾਂ ਲਈ auto-incrementing IDs ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। 8473 ਵਰਗੀ ID ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੈ। ਕੋਈ ਵੀ ਤੁਹਾਡੇ ਵੈਰੀਫਿਕੇਸ਼ਨ ਪੇਜ 'ਤੇ ਨੰਬਰਾਂ ਨੂੰ ਬਦਲ ਕੇ ਤੁਹਾਡੇ ਦੁਆਰਾ ਜਾਰੀ ਕੀਤੇ ਗਏ ਹਰ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ (credential) ਨੂੰ ਸਕ੍ਰੈਪ (scrape) ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਦੀ ਬਜਾਏ, ਜਦੋਂ ਤੁਸੀਂ ਸਰਟੀਫਿਕੇਟ ਰਿਕਾਰਡ ਬਣਾਉਂਦੇ ਹੋ, ਤਾਂ ਇੱਕ UUID ਤਿਆਰ ਕਰੋ।
ਆਪਣੀ migration ਵਿੱਚ, UUID ਨੂੰ ਇੱਕ string ਵਜੋਂ ਸਟੋਰ ਕਰੋ। ਜਦੋਂ ਕੋਈ ਉਪਭੋਗਤਾ ਕੋਰਸ ਪੂਰਾ ਕਰ ਲੈਂਦਾ ਹੈ, ਤਾਂ ਇੱਕ event ਫਾਇਰ ਕਰੋ ਜੋ ਉਪਭੋਗਤਾ ਅਤੇ ਕੋਰਸ ਨਾਲ ਜੁੜਿਆ ਇੱਕ Certificate model ਬਣਾਉਂਦਾ ਹੈ। ਵੈਰੀਫਿਕੇਸ਼ਨ endpoint ਨੂੰ ਕਿਸੇ ਵੀ authenticated dashboard ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵੱਖਰਾ ਰੱਖੋ। /verify/{uuid} ਵਰਗਾ ਇੱਕ public route ਰਿਕਾਰਡ ਨੂੰ ਲੱਭਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਪ੍ਰਾਪਤਕਰਤਾ ਦਾ ਨਾਮ, ਕੋਰਸ ਦਾ ਸਿਰਲੇਖ ਅਤੇ ਪੂਰਾ ਕਰਨ ਦੀ ਮਿਤੀ ਦਿਖਾਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ UUID ਮੌਜੂਦ ਨਹੀਂ ਹੈ, ਤਾਂ 404 ਰਿਟਰਨ ਕਰੋ। ਕਿਸੇ ਵਾਧੂ ਲੌਗਇਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
ਇਹ ਇੱਕੋ ਇੱਕ ਡਿਜ਼ਾਈਨ ਚੋਣ ਪ੍ਰਾਈਵੇਸੀ ਦੀ ਰੱਖਿਆ ਕਰਦੀ ਹੈ ਅਤੇ enumeration attacks ਨੂੰ ਰੋਕਦੀ ਹੈ।
Blade Template ਡਿਜ਼ਾਈਨ ਕਰਨਾ
ਤੁਹਾਡਾ ਸਰਟੀਫਿਕੇਟ ਡਿਜ਼ਾਈਨ ਇੱਕ ਸਟੈਂਡਰਡ Blade view ਵਿੱਚ ਹੁੰਦਾ ਹੈ, ਪਰ ਤੁਹਾਨੂੰ ਇਸ ਨਾਲ ਇੱਕ ਆਮ ਵੈੱਬ ਪੇਜ ਵਾਂਗ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਪੇਸ਼ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। PDF rendering engines ਬ੍ਰਾਊਜ਼ਰਾਂ ਵਾਂਗ ਕੰਮ ਨਹੀਂ ਕਰਦੇ। ਬਾਹਰੀ stylesheets ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਹਨ ਕਿਉਂਕਿ PDF ਕਨਵਰਟਰ ਸ਼ਾਇਦ ਉਹਨਾਂ ਨੂੰ ਉਸੇ ਸੰਦਰਭ (context) ਵਿੱਚ ਫੈਚ ਨਾ ਕਰ ਸਕੇ। ਸਿਰਫ਼ inline CSS ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਭੌਤਿਕ ਮਾਪਾਂ (physical dimensions) ਬਾਰੇ ਸੋਚੋ। ਜੇਕਰ ਤੁਸੀਂ landscape ਸਰਟੀਫਿਕੇਟ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਕੰਟੇਨਰ ਦੀ ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ ਸਿੱਧੀ ਸੈੱਟ ਕਰੋ:
<div style="width: 11in; height: 8.5in; position: relative; padding: 40px; font-family: Georgia, serif;">
ਉਸ ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ absolute positioning ਨਾਲ ਹਸਤਾਖਰਾਂ, ਮੋਹਰਾਂ ਅਤੇ ਬਾਰਡਰਾਂ ਨੂੰ ਸੈੱਟ ਕਰੋ। Web-safe fonts ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਵਿਕਲਪ ਹਨ, ਹਾਲਾਂਕਿ ਕੁਝ PDF engines ਫੌਂਟ ਐਂਬੈਡਿੰਗ (font embedding) ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ ਜੇਕਰ ਤੁਸੀਂ ਸਾਵਧਾਨ ਰਹੋ। CSS Grid ਜਾਂ ਉੱਨਤ Flexbox 'ਤੇ ਬਹੁਤੀ ਨਿਰਭਰਤਾ ਤੋਂ ਬਚੋ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਹ ਨਹੀਂ ਪਤਾ ਕਿ ਤੁਹਾਡਾ rendering engine ਇਸਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਵਿਆਪਕ ਅਨੁਕੂਲਤਾ (broad compatibility) ਲਈ, ਪੁਰਾਣੇ ਤਰੀਕੇ ਦੇ table layouts ਅਜੇ ਵੀ ਅਲਾਈਨਮੈਂਟ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਆਧੁਨਿਕ CSS ਇੱਕ PDF engine ਦੇ ਅੰਦਰ ਗਾਰੰਟੀ ਨਹੀਂ ਦੇ ਸਕਦਾ।
Markup ਨੂੰ ਸਾਫ਼ ਰੱਖੋ। HTML ਜਿੰਨਾ ਸਰਲ ਹੋਵੇਗਾ, ਕਨਵਰਟਰ ਦੁਆਰਾ ਬ੍ਰੋਕਨ ਲੇਆਉਟ (broken layout) ਨਾਲ ਤੁਹਾਨੂੰ ਹੈਰਾਨ ਕਰਨ ਦੀ ਸੰਭਾਵਨਾ ਉਨੀ ਹੀ ਘੱਟ ਹੋਵੇਗੀ।
QR Code ਜੋੜਨਾ
Simple QRCode package ਇੰਸਟਾਲ ਕਰੋ। ਤੁਹਾਨੂੰ ਇੱਕ QR code ਦੀ ਲੋੜ ਹੈ ਜੋ ਸਿੱਧਾ ਤੁਹਾਡੇ ਵੈਰੀਫਿਕੇਸ਼ਨ ਪੇਜ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੋਵੇ। ਆਪਣੇ Blade template ਵਿੱਚ, ਇਸਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਰੈਂਡਰ ਕਰੋ:
<img src="{!! QrCode::size(150)->generate(route('certificates.verify', $certificate->uuid)) !!}" style="position: absolute; bottom: 40px; right: 40px;">
ਜਦੋਂ ਕੋਈ ਰੁਜ਼ਗਾਰਦਾਤਾ ਫ਼ੋਨ ਨਾਲ ਉਸ ਕੋਡ ਨੂੰ ਸਕੈਨ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਹ ਤੁਹਾਡੇ Laravel app 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ ਅਤੇ ਲਾਈਵ ਰਿਕਾਰਡ ਦੇਖਦਾ ਹੈ। ਉਹ physical-to-digital ਬ੍ਰਿਜ ਹੀ ਸਰਟੀਫਿਕੇਟ ਨੂੰ ਵੈਰੀਫਿਏਬਲ (verifiable) ਬਣਾਉਂਦਾ ਹੈ। ਸਿਰਫ਼ ਇੱਕ ਸੁੰਦਰ PDF ਕੁਝ ਵੀ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ। QR code ਭਰੋਸੇ ਨੂੰ ਤੁਰੰਤ ਅਤੇ ਵਿਜ਼ੂਅਲ ਬਣਾਉਂਦਾ ਹੈ।
PDF Engine ਦੀ ਚੋਣ ਕਰਨਾ
Laravel developers ਆਮ ਤੌਰ 'ਤੇ ਤਿੰਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਰਸਤਾ ਚੁਣਦੇ ਹਨ। ਹਰੇਕ ਦੇ ਆਪਣੇ ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ ਹਨ।
DomPDF ਪੂਰੀ ਤਰ੍ਹਾਂ PHP ਵਿੱਚ ਚੱਲਦਾ ਹੈ। ਇਸਨੂੰ Composer ਰਾਹੀਂ ਇੰਸਟਾਲ ਕਰੋ, ਆਪਣਾ Blade-rendered HTML ਇਸ ਵਿੱਚ ਪਾਸ ਕਰੋ, ਅਤੇ ਆਉਟਪੁੱਟ ਸੇਵ ਕਰੋ। ਇਸ ਲਈ ਕਿਸੇ ਵਾਧੂ ਸਰਵਰ ਸਾਫਟਵੇਅਰ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ, ਜੋ ਇਸਨੂੰ ਸ਼ੇਅਰਡ ਹੋਸਟਿੰਗ (shared hosting) 'ਤੇ ਵਰਤਣ ਲਈ ਆਕਰਸ਼ਕ ਬਣਾਉਂਦਾ ਹੈ। ਇਸਦਾ ਨੁਕਸਾਨ CSS support ਹੈ। Flexbox ਅਤੇ Grid ਵਰਗੇ ਆਧੁਨਿਕ ਲੇਆਉਟ ਟੂਲਸ ਜਾਂ ਤਾਂ ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਸਮਰਥਿਤ ਹਨ ਜਾਂ ਖਰਾਬ ਹਨ। Custom webfonts ਔਖੇ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਗੁੰਝਲਦਾਰ ਬੈਕਗ੍ਰਾਊਂਡ ਅਕਸਰ ਗਲਤ ਰੈਂਡਰ ਹੁੰਦੇ ਹਨ। ਜੇਕਰ ਤੁਹਾਡਾ ਸਰਟੀਫਿਕੇਟ ਡਿਜ਼ਾਈਨ ਸਾਧਾਰਨ ਹੈ, ਤਾਂ DomPDF ਕੰਮ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਟੀਕਤਾ (precision) ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਇਹ ਤੁਹਾਨੂੰ ਨਿਰਾਸ਼ ਕਰੇਗਾ।
Browsershot ਇੱਕ ਵੱਖਰਾ ਤਰੀਕਾ ਅਪਣਾਉਂਦਾ ਹੈ। ਇਹ ਇੱਕ headless Chrome instance ਨੂੰ ਚਲਾਉਣ ਲਈ Puppeteer ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਤੁਹਾਡੇ HTML ਨੂੰ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਰੈਂਡਰ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਬ੍ਰਾਊਜ਼ਰ ਇਸਨੂੰ ਦੇਖਦਾ ਹੈ, ਅਤੇ ਇੱਕ PDF ਐਕਸਪੋਰਟ ਕਰਦਾ ਹੈ। ਕਿਉਂਕਿ ਇਹ ਅਸਲੀ Chrome ਹੈ, ਤੁਹਾਡੇ Tailwind styles, custom fonts, ਅਤੇ responsive layouts ਸਭ ਕੁਝ ਬਿਲਕੁਲ ਸਹੀ ਤਰ੍ਹਾਂ ਅਨੁਵਾਦ ਹੁੰਦੇ ਹਨ। ਇਸ ਵਿੱਚ ਮੁੱਖ ਚੁਣੌਤੀ ਸਰਵਰ ਸੈੱਟਅੱਪ ਹੈ। ਤੁਹਾਨੂੰ Node.js, Puppeteer, ਅਤੇ Chrome ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਕੁਝ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ, ਤੁਹਾਨੂੰ Chrome sandbox ਨੂੰ ਡਿਸੇਬਲ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਜਾਂ ਰੁਕੇ ਹੋਏ ਪ੍ਰੋਸੈਸਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਮੈਮੋਰੀ ਨੂੰ ਧਿਆਨ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੇ ਸਰਵਰ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦੇ ਹੋ ਅਤੇ ਤੁਹਾਨੂੰ pixel-perfect ਡਿਜ਼ਾਈਨ ਰੀਪਲੀਕੇਸ਼ਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ Browsershot ਦਾ ਕੋਈ ਮੁਕਾਬਲਾ ਨਹੀਂ ਹੈ।
HTML to PDF API ਤੀਜਾ ਰਸਤਾ ਹੈ। ਤੁਸੀਂ ਆਪਣੇ ਰੈਂਡਰ ਕੀਤੇ Blade HTML ਨੂੰ ਇੱਕ string ਵਜੋਂ ਇਕੱਠਾ ਕਰਦੇ ਹੋ, ਇਸਨੂੰ ਇੱਕ ਬਾਹਰੀ ਸੇਵਾ (external service) ਨੂੰ POST ਕਰਦੇ ਹੋ, ਅਤੇ ਵਾਪਸ ਇੱਕ PDF ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ। ਇਸਦਾ ਵਿਹਾਰਕ ਲਾਭ ਇਹ ਹੈ ਕਿ ਸਰਵਰ-ਸਾਈਡ 'ਤੇ ਕੋਈ ਨਿਰਭਰਤਾ ਨਹੀਂ ਹੁੰਦੀ। ਤੁਹਾਨੂੰ Chrome ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪੈਂਦੀ। ਤੁਹਾਨੂੰ PHP ਫੌਂਟ ਦੀਆਂ ਮੁਸ਼ਕਲਾਂ ਨੂੰ ਡੀਬੱਗ (debug) ਵੀ ਨਹੀਂ ਕਰਨਾ ਪੈਂਦਾ। ਤੁਹਾਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਫਾਰਮੈਟ ਕੀਤਾ ਹੋਇਆ vector PDF ਮਿਲਦਾ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਜ਼ਿਆਦਾਤਰ ਸੇਵਾਵਾਂ ਪ੍ਰਤੀ ਦਸਤਾਵੇਜ਼ ਦੇ ਹਿਸਾਬ ਨਾਲ ਚਾਰਜ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਕਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ, ਕਾਰਜਸ਼ੀਲ ਸਰਲਤਾ ਇਸਦੀ ਲਾਗਤ ਦੇ ਬਰਾਬਰ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ sysadmin ਕੰਮ ਤੋਂ ਬਿਨਾਂ ਉੱਚ-ਗੁਣਵੱਤਾ ਵਾਲਾ ਆਉਟਪੁੱਟ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਆਮ ਤੌਰ 'ਤੇ production ਲਈ ਸਭ ਤੋਂ ਤੇਜ਼ ਰਸਤਾ ਹੈ।
ਪੂਰਾ ਵਰਕਫਲੋ (Workflow)
ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ engine ਚੁਣ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਪਾਈਪਲਾਈਨ ਸਿੱਧੀ ਹੁੰਦੀ ਹੈ। ਕੋਰਸ ਪੂਰਾ ਹੋਣ ਦੀ ਘਟਨਾ (event) ਇੱਕ listener ਨੂੰ ਟ੍ਰਿਗਰ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜੋ ਹੇਠਾਂ ਦਿੱਤੇ ਕੰਮ ਕਰਦਾ ਹੈ:
- ਇੱਕ UUID ਜਨਰੇਟ ਕਰੋ ਅਤੇ
Certificateਰਿਕਾਰਡ ਬਣਾਓ। view('certificates.pdf', compact('certificate'))->render()ਦੀ ਵਰਤੋਂ ਕਰਕੇ Blade view ਨੂੰ ਇੱਕ HTML string ਵਿੱਚ ਰੈਂਡਰ ਕਰੋ।- ਉਸ HTML string ਨੂੰ ਆਪਣੀ ਚੁਣੀ ਹੋਈ PDF ਸੇਵਾ ਜਾਂ ਪੈਕੇਜ ਨੂੰ ਭੇਜੋ।
- ਨਤੀਜੇ ਵਾਲੀ ਫਾਈਲ ਨੂੰ ਇੱਕ ਲੌਜੀਕਲ ਪਾਥ (logical path) ਦੇ ਪਿੱਛੇ
storage/app/certificates/ਵਿੱਚ ਸੇਵ ਕਰੋ, ਜਿਵੇਂ ਕਿcertificates/2024/06/uuid.pdf। - ਫਾਈਲ ਨੂੰ ਇੱਕ ਨੋਟੀਫਿਕੇਸ਼ਨ ਨਾਲ ਜੋੜੋ ਅਤੇ ਸਿੱਖਣ ਵਾਲੇ (learner) ਨੂੰ ਆਪਣੇ ਆਪ ਈਮੇਲ ਕਰ ਦਿਓ।
Laravel ਦਾ notification system ਈਮੇਲ ਨੂੰ ਸਾਫ਼-ਸੁਥਰੇ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲਦਾ ਹੈ। ਜੇਕਰ ਰੈਂਡਰਿੰਗ ਵਿੱਚ ਇੱਕ ਸਕਿੰਟ ਤੋਂ ਵੱਧ ਸਮਾਂ ਲੱਗਦਾ ਹੈ, ਤਾਂ generation job ਨੂੰ queue ਵਿੱਚ ਪਾ ਦਿਓ। ਤੁਸੀਂ ਨਹੀਂ ਚਾਹੋਗੇ ਕਿ ਪੇਜ ਲੋਡ ਹੋਣ ਦੌਰਾਨ ਕੋਈ ਸਿੱਖਣ ਵਾਲਾ PDF ਦੀ ਉਡੀਕ ਕਰੇ।
ਜਦੋਂ ਉਪਭੋਗਤਾ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਸਨੂੰ ਇੱਕ ਸਟੈਂਡਰਡ PDF ਮਿਲਦੀ ਹੈ ਜੋ ਕਿਸੇ ਵੀ viewer ਵਿੱਚ ਖੁੱਲ੍ਹ ਜਾਂਦੀ ਹੈ। ਜਦੋਂ ਉਹ ਇਸਨੂੰ ਪ੍ਰਿੰਟ ਕਰਦੇ ਹਨ, ਤਾਂ vector text ਸਾਫ਼ ਰਹਿੰਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਰੁਜ਼ਗਾਰਦਾਤਾ (employer) QR code ਸਕੈਨ ਕਰਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਡੀ Laravel app ਡਾਟਾਬੇਸ ਦੇ ਵਿਰੁੱਧ UUID ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੀ ਹੈ ਅਤੇ ਤੱਥ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦੀ ਹੈ।
ਵੈਕਟਰ ਆਉਟਪੁੱਟ (Vector Output) ਕਿਉਂ ਲਾਜ਼ਮੀ ਹੈ
ਕੁਝ PDF ਜਨਰੇਸ਼ਨ ਵਿਧੀਆਂ rasterized ਆਉਟਪੁੱਟ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਟੈਕਸਟ ਦਾ ਹਰ ਹਿੱਸਾ ਇੱਕ ਤਸਵੀਰ ਬਣ ਜਾਂਦਾ ਹੈ। ਜ਼ੂਮ ਕਰਨ 'ਤੇ ਅੱਖਰ ਧੁੰਦਲੇ ਹੋ ਜਾਂਦੇ ਹਨ। ਫਾਈਲ ਦਾ ਆਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੋ ਜਾਂਦਾ ਹੈ। ਸਕ੍ਰੀਨ ਰੀਡਰ ਅਤੇ ਸਰਚ ਇੰਜਣ ਟੈਕਸਟ ਨੂੰ ਕੱਢ ਨਹੀਂ ਸਕਦੇ।
ਹਮੇਸ਼ਾ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਹਾਡੀ ਚੁਣੀ ਹੋਈ ਵਿਧੀ ਇੱਕ ਅਸਲੀ vector PDF ਪੈਦਾ ਕਰਦੀ ਹੈ। ਟੈਕਸਟ ਚੁਣਨਯੋਗ (selectable) ਰਹਿਣਾ ਚਾਹੀਦਾ ਹੈ। 400 ਪ੍ਰਤੀਸ਼ਤ ਜ਼ੂਮ 'ਤੇ ਵੀ ਲਾਈਨਾਂ ਸਾਫ਼ ਰਹਿਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ। ਤੁਹਾਡੇ ਸਿੱਖਣ ਵਾਲੇ ਇੱਕ ਅਜਿਹੇ ਦਸਤਾਵੇਜ਼ ਦੇ ਹੱਕਦਾਰ ਹਨ ਜੋ ਅਧਿਕਾਰਤ ਲੱਗੇ, ਨਾ ਕਿ PDF ਵਜੋਂ ਸੇਵ ਕੀਤਾ ਗਿਆ ਕੋਈ ਸਕ੍ਰੀਨਸ਼ੌਟ।
ਵੈਕਟਰ ਆਉਟਪੁੱਟ ਤੁਹਾਡੇ ਸਟੋਰੇਜ ਖਰਚੇ ਨੂੰ ਵੀ ਘੱਟ ਰੱਖਦਾ ਹੈ। ਵੈਕਟਰ ਟੈਕਸਟ ਦਾ ਇੱਕ ਪੰਨਾ ਪੰਜਾਹ ਕਿਲੋਬਾਈਟ ਹੋ ਸਕਦਾ ਹੈ। ਉਹੀ ਪੰਨਾ ਇੱਕ ਉੱਚ-ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਵਾਲੀ ਤਸਵੀਰ ਵਜੋਂ ਦੋ ਮੈਗਾਬਾਈਟ ਤੋਂ ਵੱਧ ਹੋ ਸਕਦਾ ਹੈ। ਵੱਡੇ ਪੱਧਰ 'ਤੇ, ਇਹ ਅੰਤਰ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ।
ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਗੱਲ ਜੋ ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ
ਇਸਨੂੰ ਇਨ-ਹਾਊਸ (in-house) ਬਣਾਉਣਾ ਸਿਰਫ਼ SaaS ਸਰਟੀਫਿਕੇਟ ਪਲੇਟਫਾਰਮ 'ਤੇ ਪੈਸੇ ਬਚਾਉਣ ਬਾਰੇ ਨਹੀਂ ਹੈ। ਇਹ ਭਰੋਸੇਯੋਗਤਾ ਬਾਰੇ ਹੈ। ਜਦੋਂ ਇੱਕ ਸਿੱਖਣ ਵਾਲਾ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦਾ ਹੈ, ਇਸਨੂੰ ਕਿਸੇ ਡੈਸਕ 'ਤੇ ਦੇ ਸਕਦਾ ਹੈ, ਅਤੇ ਕਿਸੇ ਅਣਜਾਣ ਵਿਅਕਤੀ ਨੂੰ ਫ਼ੋਨ ਨਾਲ ਤੁਰੰਤ ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੇਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਕੁਝ ਸਥਾਈ ਦਿੱਤਾ ਹੈ। ਤੁਸੀਂ ਡਿਜ਼ਾਈਨ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਡੇਟਾ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦੇ ਹੋ। ਭਰੋਸਾ ਤੁਹਾਡੇ ਬ੍ਰਾਂਡ ਦਾ ਹੈ, ਕਿਸੇ ਵੈਂਡਰ ਦੇ ਸਬਡੋਮੇਨ (subdomain) ਦਾ ਨਹੀਂ।
ਤੁਸੀਂ ਆਪਣੇ Laravel ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਸਰਟੀਫਿਕੇਟ ਜਨਰੇਸ਼ਨ ਅਤੇ ਵੈਰੀਫਿਕੇਸ਼ਨ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦੇ ਹੋ? ਮੈਂ ਕੁਮੈਂਟਸ ਵਿੱਚ ਸੁਣਨਾ ਚਾਹਾਂਗਾ ਕਿ ਤੁਹਾਡੇ ਲਈ ਕੀ ਕੰਮ ਕਰਿਆ ਹੈ।
