Product যদি web page হয়, Puppeteer দারুণ
Puppeteer আসল Chromium browser চালায়। এটিই তার শক্তি। Source of truth যদি existing HTML page, JavaScript chart-সহ dashboard, rendered web app-এর legal snapshot বা screenshot-style export হয়, Puppeteer প্রায়ই সঠিক product choice।
প্রশ্ন হলো আপনার PDF সত্যিই web page কিনা, নাকি structured business document। Invoice, label, statement, receipt, ticket ও form সাধারণত data থেকে আসে, live DOM থেকে নয়। সে ক্ষেত্রে whole browser চালানো document-এর দরকারের তুলনায় বেশি architecture হতে পারে।
Same artifact, কিন্তু পণ্যসীমা আলাদা
Puppeteer Chromium দিয়ে HTML-কে printed PDF-এ বদলায়। Application HTML template, CSS print rule, font installation, browser runtime, worker capacity, retry এবং regional deployment own করে।
gPdf structured JSON সরাসরি PDF-এ বদলায়। Application DocumentRequest বা template_id + data পাঠায়; edge renderer layout execution, bundled font, barcode primitive, PDF/A profile ও e-invoice packaging own করে। Browser process নেই, CSS cascade নেই, warm Chromium container নেই।
কোন কাজে মানায়: web capture বনাম document generation
Document-কে existing web page-এর মতোই দেখতে হলে বা client-side JavaScript final visual state বানালে Puppeteer বেছে নিন। Web archive, dynamic dashboard, DOM-heavy report এবং JSON-এ reauthor করলে বেশি risk তৈরি হবে এমন কাজের ধারা এর মধ্যে পড়ে।
Product যদি document generation হয়, gPdf বেছে নিন: label, invoice, ticket, statement, certificate, receipt বা compliance package, যা clean data থেকে প্রতিবার একইভাবে তৈরি হওয়া উচিত।
ডেভেলপমেন্ট সময়: HTML print debugging বনাম API template
HTML আগে থেকেই থাকলে Puppeteer দ্রুত start করে। ডেভেলপমেন্ট সময় পরে আসে: print CSS, page-break behavior, container-এ font installation, header/footer edge case, barcode sizing এবং browser version drift।
gPdf structured template থেকে start করে। Team JSON লিখতে পারে, AI দিয়ে schema-valid layout draft করতে পারে, অথবা gPdf Studio-তে text, table, image, shape, header, footer ও barcode visually add/drag করতে পারে। Template save হলে production call template_id + data থাকে।
দামের মডেল: free automation library বনাম operated browser fleet
Puppeteer-এর license fee নেই। তাই production Puppeteer PDF service free — এটা ঠিক নয়।
Chromium ঘিরে service cost surface তৈরি হয়:
- Browser binary-এর জন্য container বা serverless runtime.
- Cold start absorb করতে warm pool বা queueing.
- Page, font, image ও PDF bytes-এর জন্য memory headroom.
- Warehouse বা customer global হলে regional deployment.
- Monitoring, retry, browser upgrade ও security patch.
gPdf PDF generation surface সরাসরি price করে। Basic plan মাসে ৫ USD-তে ১ লাখ পৃষ্ঠা থেকে শুরু, public per-page math প্রতি পৃষ্ঠা ০.০০০০৫ USD। Seat নেই, আলাদা test/prod environment fee নেই, operate করার Chromium pool নেই।
Edge generation latency ও cost shape বদলে দেয়
Puppeteer-এ browser সাধারণত আপনি যেখানে host করেন সেখানে থাকে। Warehouse, customer বা backend job ওই region থেকে দূরে হলে render path-এ network latency ও browser work দুটোই থাকে। Region যোগ মানে browser service, deployment pipeline, monitoring ও capacity plan duplicate করা।
gPdf Cloudflare Workers V8 isolates-এ চলে। Structured PDF-এর জন্য renderer caller-এর কাছে run করার মতো ছোট। Business effect শুধু faster p50 নয়; regional Chromium fleet সরিয়ে দেওয়াও।
Product capabilities যা comparison ঠিক করে
Operational document-এ feature list raw speed-এর মতোই গুরুত্বপূর্ণ:
- Label, ticket ও warehouse document-এর জন্য native barcode elements.
- Bundled CJK ও multilingual font fallback.
- Archive কাজের ধারার জন্য PDF/A output profiles.
- Factur-X/ZUGFeRD e-invoice packaging.
- Higher tiers-এ password-protected PDFs ও metadata controls.
- gPdf Studio দিয়ে visual layout iteration.
Puppeteer page code, browser setup বা post-processing দিয়ে এসবের অনেক কিছু করতে পারে। প্রশ্ন হলো আপনার team ওই stack own করতে চায় কিনা।
কখন Puppeteer এখনো সঠিক উত্তর
একটি category আছে যেখানে gPdf compete করে না: arbitrary HTML-to-PDF conversion। Document আগে থেকেই rendered হলে, design-এর সত্যের উৎস HTML হলে, এবং JavaScript execute বা DOM match করতে real browser দরকার হলে Puppeteer সঠিক tool।
Workload ছোট এবং latency গুরুত্বপূর্ণ না হলে operational cost acceptable হতে পারে। দিনে কয়েকটি internal export stable HTML-কে JSON-এ reauthor করার কারণ নয়।
মাইগ্রেশনের রূপ
Puppeteer থেকে invoice বা label workload gPdf-এ আনলে migration সাধারণত এমন:
- // Before: render an HTML template through Chromium
- const browser = await puppeteer.launch({ headless: 'new' });
- const page = await browser.newPage();
- await page.setContent(invoiceHtml);
- const pdf = await page.pdf({ format: 'A4' });
+ // After: POST the structured DocumentRequest
+ const res = await fetch('https://api.gpdf.com/api/v1/template-render', {
+ method: 'POST',
+ headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
+ body: JSON.stringify({ template_id: 'invoice-v2', data }),
+ });
+ const pdf = Buffer.from(await res.arrayBuffer());
কাজটি API call নয়; template একবার author করা। এরপর প্রতিটি render একটি HTTPS POST।
সম্পর্কিত PDF তৈরির ব্যবহারক্ষেত্র
Puppeteer ও gPdf তুলনা করলে সত্যের উৎস দিয়ে শুরু করুন। Live HTML, JavaScript dashboard বা screenshot-style PDF দরকার হলে Puppeteer ঠিক tool। কিন্তু structured data থেকে invoice PDF, shipping label বা barcode PDF বানালে JSON to PDF API বেশি সরাসরি পথ। Compliance দরকার হলে PDF/A API ও Factur-X API browser rendering-এর বাইরে আলাদা decision তৈরি করে।
FAQ
Puppeteer কি free?
Puppeteer library হিসেবে free। Production-এ cost হলো browser service: containers, memory, cold starts, regional capacity, monitoring, retries ও maintenance।
gPdf কি arbitrary HTML pages render করতে পারে?
না। gPdf JSON-native। Source of truth যদি arbitrary HTML বা live web page হয়, Puppeteer ভালো fit।
Studio-কে Puppeteer-এর সঙ্গে compare কেন?
অনেক team HTML ব্যবহার করে কারণ designer ও developer result দেখতে পারে। gPdf Studio structured PDF template-কে visual editing surface দেয়, runtime-কে browser বানানো ছাড়াই।
আরও পড়ুন
- Full gPdf API reference — endpoints, request shape, errors.
- 10K invoices/day পার হলে edge PDF rendering কেন গুরুত্বপূর্ণ — latency math.
- Engineers-এর জন্য PDF/A ও Factur-X — EU e-invoice mandates থাকলে প্রাসঙ্গিক।