Puppeteer ممتاز عندما يكون المنتج صفحة ويب
Puppeteer يقود متصفح Chromium حقيقيا. هذه هي قوته الأساسية. إذا كان مصدر الحقيقة صفحة HTML قائمة، أو لوحة بيانات برسوم JavaScript، أو لقطة قانونية لتطبيق ويب معروض، أو تصدير بأسلوب لقطة شاشة، فغالبا يكون Puppeteer اختيارا صحيحا.
السؤال المنتجى هو: هل PDF لديك صفحة ويب فعلا، أم مستند عمل منظم؟ الفواتير والملصقات والكشوف والإيصالات والتذاكر والنماذج تأتي عادة من بيانات، لا من DOM حي. لهذه المسارات، تشغيل متصفح كامل قد يكون معمارية أكبر مما يحتاجه المستند.
نفس الأثر النهائي، لكن حد المنتج مختلف
Puppeteer يحول HTML إلى PDF مطبوع عبر Chromium. التطبيق يمتلك قوالب HTML، وقواعد CSS للطباعة، وتثبيت الخطوط، وبيئة تشغيل المتصفح، وسعة العمال، وإعادة المحاولات، والنشر الإقليمي.
gPdf يحول JSON منظما إلى PDF مباشرة. يرسل التطبيق DocumentRequest أو template_id + data؛ ويتولى محرك الحافة تنفيذ التخطيط والخطوط المدمجة وعناصر الباركود وملفات PDF/A وحزم الفواتير الإلكترونية. لا توجد عملية متصفح، ولا سلسلة CSS، ولا حاوية Chromium تحتاج تسخينا.
ملاءمة المنتج: التقاط الويب أم توليد المستندات
اختر Puppeteer عندما يجب أن يبدو المستند تماما مثل صفحة ويب قائمة، أو عندما ينتج JavaScript من جهة العميل الحالة المرئية النهائية. يشمل ذلك أرشيف الويب، ولوحات البيانات الديناميكية، والتقارير الثقيلة على DOM، والمسارات التي يكون إعادة تأليف التخطيط كـ JSON فيها أخطر من تركه كما هو.
اختر gPdf عندما يكون المنتج هو توليد المستندات: ملصق، فاتورة، تذكرة، كشف، شهادة، إيصال، أو حزمة امتثال يجب أن تولد من بيانات نظيفة بنفس الطريقة كل مرة.
وقت التطوير: تصحيح print HTML أم قوالب API
يبدأ Puppeteer بسرعة عندما يكون HTML موجودا مسبقا. يظهر وقت التطوير لاحقا: CSS للطباعة، وسلوك فواصل الصفحات، وتثبيت الخطوط داخل الحاويات، وحالات الرأس والتذييل، وقياس الباركود، وانحراف إصدارات المتصفح.
gPdf يبدأ من قالب منظم. تستطيع الفرق كتابة JSON مباشرة، أو استخدام الذكاء الاصطناعي لصياغة تخطيطات صحيحة حسب المخطط، أو استخدام gPdf Studio لإضافة وسحب النصوص والجداول والصور والأشكال والرؤوس والتذييلات والباركود بصريا. بعد حفظ القالب، تبقى استدعاءات الإنتاج على شكل template_id + data.
نموذج السعر: مكتبة أتمتة مجانية أم أسطول متصفحات مشغل
لا توجد رسوم ترخيص لـ Puppeteer. هذا لا يجعل خدمة PDF إنتاجية مبنية عليه مجانية.
سطح التكلفة هو الخدمة المحيطة بـ Chromium:
- حاوية أو بيئة بلا خوادم لملف المتصفح الكبير.
- مجموعات دافئة أو طوابير لامتصاص البدايات الباردة.
- هامش ذاكرة للصفحات والخطوط والصور وبايتات PDF.
- نشر إقليمي إذا كانت المستودعات أو العملاء عالميين.
- مراقبة وإعادة محاولات وترقيات متصفح وتصحيحات أمنية.
gPdf يسعر سطح توليد PDF مباشرة. تبدأ باقة Basic من 5 دولارات/شهر مقابل 100,000 صفحة، ويبدأ الحساب العام لكل صفحة من 0.00005 دولار لكل صفحة. لا توجد مقاعد، ولا رسوم منفصلة لبيئات test/prod، ولا مجموعة Chromium لتشغيلها.
التوليد عند الحافة يغير شكل الزمن والتكلفة
مع Puppeteer، يعيش المتصفح غالبا حيث تستضيفه. إذا كان المستودع أو العميل أو مهمة الخلفية بعيدا عن تلك المنطقة، يتضمن مسار التوليد زمن شبكة إضافة إلى عمل المتصفح نفسه. إضافة مناطق تعني تكرار خدمة المتصفح وخط النشر والمراقبة وخطة السعة.
gPdf يعمل على عزلات Cloudflare Workers V8. للمستندات المنظمة، المحرك صغير بما يكفي للعمل قرب المستدعي بدلا من تجميع كل توليد في منطقة واحدة. الأثر التجاري ليس أرقام p50 أسرع فقط؛ بل إزالة أسطول Chromium إقليمي من المنتج.
قدرات المنتج التي تحسم المقارنة عادة
للمستندات التشغيلية، قائمة الميزات مهمة بقدر سرعة التوليد:
- عناصر باركود أصلية للملصقات والتذاكر ومستندات المستودعات.
- بدائل مدمجة لخطوط CJK واللغات المتعددة.
- ملفات PDF/A لمسارات الأرشفة.
- حزم Factur-X/ZUGFeRD للفواتير الإلكترونية.
- ملفات PDF محمية بكلمة مرور وتحكم في البيانات الوصفية في الباقات الأعلى.
- تعديل بصري للتخطيط عبر gPdf Studio.
يستطيع Puppeteer دعم كثير من ذلك عبر كود الصفحة أو إعداد المتصفح أو المعالجة اللاحقة. السؤال هو هل تريد أن يمتلك فريقك هذه الحزمة التشغيلية.
متى يظل Puppeteer هو الإجابة الصحيحة
هناك فئة لا ينافسها gPdf: تحويل HTML عشوائي إلى PDF. إذا كان المستند معروضا مسبقا، ومصدر التصميم هو HTML، وتحتاج متصفحا حقيقيا لتنفيذ JavaScript أو مطابقة DOM، فـ Puppeteer يبقى الأداة الصحيحة.
إذا كان حجم العمل صغيرا ولا يهم زمن الاستجابة، فقد تكون تكلفة التشغيل مقبولة أيضا. عدة exports داخلية يوميا لا تبرر إعادة تأليف HTML مستقر كـ JSON.
شكل الهجرة
للفرق التي تنقل عبء فواتير أو ملصقات من Puppeteer إلى gPdf، تبدو الهجرة عادة هكذا:
- // 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؛ بل تأليف القالب مرة واحدة. بعد ذلك، كل توليد هو HTTPS POST واحد.
سيناريوهات PDF ذات صلة
الفرق التي تقارن Puppeteer وgPdf تبحث غالبا عن بدائل headless Chrome PDF وتوليد PDF بلا خوادم، لكنها تصل أيضا إلى أسئلة تشغيلية: هل يمكن توليد PDF الفاتورة وملصقات الشحن دون Chromium، هل يكفي JSON to PDF API للتخطيطات المنظمة، وهل يجب أن تكون barcodes وPDF/A جزءا من API عند الحافة بدلا من كود صفحة ويب.
الأسئلة الشائعة
هل Puppeteer مجاني؟ Puppeteer مجاني كمكتبة. في الإنتاج، التكلفة هي خدمة المتصفح: الحاويات، والذاكرة، والبدايات الباردة، والسعة الإقليمية، والمراقبة، وإعادة المحاولات، والصيانة.
هل يستطيع gPdf عرض صفحات HTML عشوائية؟ لا. gPdf أصلي في JSON. إذا كان مصدر الحقيقة HTML عشوائيا أو صفحة ويب حية، فـ Puppeteer أنسب.
لماذا نقارن Studio مع Puppeteer؟ لأن فرقا كثيرة تستخدم HTML جزئيا لأن المصممين والمطورين يستطيعون رؤية النتيجة. gPdf Studio يعطي قوالب PDF المنظمة سطح تحرير بصريا دون تحويل بيئة التشغيل إلى متصفح.
راجع أيضا
- مرجع gPdf API الكامل — نقاط النهاية، شكل الطلب، والأخطاء.
- لماذا يهم توليد PDF عند الحافة بعد 10K فاتورة يوميا — حسابات زمن الاستجابة المطولة.
- شرح PDF/A و Factur-X للمهندسين — مهم إذا كانت متطلبات الفاتورة الإلكترونية الأوروبية تنطبق على حملك.