تخطَّ إلى المحتوى
getnextpdf.com

الأسئلة الشائعة عن ⁨NextPDF⁩

تجيب هذه الصفحة عن الأسئلة التي تظهر أولًا حين تُقيِّم ⁨NextPDF⁩ أو تبدأ مشروعًا جديدًا. كل إجابة قصيرة وترتبط بالصفحة التي تغطّيها بالكامل. ⁨NextPDF⁩ محرّك ⁨PHP 8.4⁩ يولّد ويفحص مستندات صيغة المستند المحمول (⁨PDF⁩) ⁨2.0⁩، وهي صيغة الملف التي تعرّفها ⁨ISO 32000-2.⁩

إذا كنت جديدًا تمامًا، فاقرأ ابدأ أولًا، ثم عُد إلى هنا للتفاصيل.

أي إصدار أحتاج: ⁨Core⁩ أم ⁨Pro⁩ أم ⁨Enterprise؟⁩

قسم بعنوان «أي إصدار أحتاج: ⁨Core⁩ أم ⁨Pro⁩ أم ⁨Enterprise؟⁩»

ابدأ بـ⁨Core.⁩ يولّد النواة مفتوحة المصدر ‏(nextpdf/core) خرج ⁨PDF،⁩ ويعرض ⁨HTML⁩ المدعوم إلى ملفات ⁨PDF،⁩ ويفحص ملفات ⁨PDF⁩ تحت ترخيص ⁨Apache-2.0⁩ وبلا تكلفة. يُنتج ⁨Core⁩ أصلًا توقيعات ⁨CMS SignedData⁩ لمستويي ⁨B-B⁩ و⁨B-T⁩ الأساسيين من التوقيعات الإلكترونية المتقدّمة لـ⁨PDF⁩ ‏(⁨PAdES⁩). اختر ⁨Pro⁩ حين تحتاج التوليد المتقدّم وعمليات المستندات، أو خرج الفواتير الإلكترونية ‏(⁨Factur-X⁩ / ⁨ZUGFeRD⁩)، أو سير عمل توقيع متقدّم مثل التوقيع عن بُعد، والتوقيع السحابيّ عبر ⁨KMS،⁩ والتوقيع المتسلسل. اختر ⁨Enterprise⁩ حين تحتاج سير عمل تأليف ⁨PDF/A⁩ الأرشيفيّ، أو مستويات ⁨PAdES⁩ الطويلة الأمد ‏(⁨B-LT⁩ / ⁨B-LTA⁩) مع مخزن أمان المستند وطوابع زمنية للمستند، أو التوقيع المدعوم بالعتاد عبر وحدة أمان عتاديّة ‏(⁨HSM⁩)، أو التوقيعات الإلكترونية المؤهَّلة. ⁨Pro⁩ و⁨Enterprise⁩ هما الإصداران المرخَّصان من ⁨NextPDF Premium،⁩ الخط المدفوع؛ انظر اختر مسارك.

نعم، للنواة. يُعلن nextpdf/core"license": "Apache-2.0" ويشحن نصّ ترخيص ⁨Apache⁩ ⁨2.0⁩ الكامل في ملف LICENSE له. يجوز لك استخدام النواة وتعديلها وإعادة توزيعها واستثمارها تجاريًا، رهنًا بمتطلّبات النسبة وNOTICE ‏(⁨Apache-2.0⁩ §4). أما ⁨NextPDF Pro⁩ و ⁨NextPDF Enterprise⁩ فهما إصداران تجاريان مملوكان وليسا مشمولين بذلك الترخيص. واسم ⁨NextPDF⁩ وشعاره علامتان تجاريتان، منفصلتان عن ترخيص الشيفرة. انظر ترخيص المنتج.

⁨PHP 8.4.⁩ قيد الحزمة >=8.4 <9.0، فيرفض ⁨Composer⁩ التثبيت على ⁨PHP 8.3⁩ أو أدنى، أو على ⁨PHP 9.⁩ يستهدف ⁨NextPDF⁩ بيئة تشغيل حديثة واحدة ويستخدم خصائص لغتها مباشرةً. انظر تثبيت ⁨NextPDF⁩.

هل يحتاج إلى برنامج ثنائيّ خارجيّ أو متصفّح بلا واجهة؟

قسم بعنوان «هل يحتاج إلى برنامج ثنائيّ خارجيّ أو متصفّح بلا واجهة؟»

لا، ليس لمحرّك النواة. المحرّك الأصلي مُنفَّذ بـ⁨PHP⁩ وامتدادات ⁨PHP⁩ القياسية، بلا برنامج ⁨PDF⁩ ثنائيّ خارجيّ وبلا متصفّح بلا واجهة إلزاميّ: تعمل الواجهة الانسيابية وخط أنابيب ⁨HTML⁩ المضمّن writeHtml() داخل العملية بلا متصفّح وبلا نداء شبكيّ. وبرنامج ⁨Chrome⁩ أو ⁨Chromium⁩ الثنائيّ اختياريّ ويلزم فقط لعارض ⁨Artisan⁩ ‏(writeHtmlChrome())، الذي تثبّته منفصلًا بوصفه nextpdf/artisan. وجسرا ⁨Cloudflare⁩ و⁨Gotenberg⁩ اختياريان أيضًا ويستدعيان خدمة. انظر اختر مسارك.

أي امتدادات ⁨PHP⁩ يتطلّبها؟

قسم بعنوان «أي امتدادات ⁨PHP⁩ يتطلّبها؟»

يتطلّب ملف composer.json للنواة الامتدادات القياسية ext-mbstring وext-zlib و ext-intl وext-gd وext-curl وext-openssl، وهي امتدادات ⁨PHP⁩ متوفّرة عمومًا؛ تأكّد من تثبيتها وتمكينها في بيئة تشغيلك. ويدعم ext-curl الرحلات الشبكية الاختيارية — الطوابع الزمنية ⁨RFC 3161⁩ وجلب الأصول البعيدة — فلا يستخدمه التوليد الأصلي غير المتّصل، لكن ⁨Composer⁩ يُدرجه مع ذلك بوصفه متطلَّبًا صارمًا. وتفحص التكاملات الامتدادات التي تحتاجها أثناء الإقلاع وتتوقّف برسالة واضحة إن كان أيٌّ منها مفقودًا. والقائمة الكاملة في ملف composer.json للحزمة؛ انظر تثبيت ⁨NextPDF⁩.

كيف أولّد أول ملف ⁨PDF⁩ لي؟

قسم بعنوان «كيف أولّد أول ملف ⁨PDF⁩ لي؟»

ثبّت النواة، ثم ابنِ مستندًا بالواجهة الانسيابية:

<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$document = Document::createStandalone();
$document->addPage();
$document->setFont('helvetica', 'B', 24);
$document->cell(0, 15, 'Hello, NextPDF!', newLine: true);
$document->save(__DIR__ . '/first.pdf');

اسلكه خطوة بخطوة في أول ملف ⁨PDF⁩ لك.

هل لـ⁨Core⁩ أي حدود ميزات أو علامة مائية؟

قسم بعنوان «هل لـ⁨Core⁩ أي حدود ميزات أو علامة مائية؟»

لا. ⁨Core⁩ هو المحرّك مفتوح المصدر لمجموعة ميزات ⁨Core⁩ بلا علامة مائية وبلا شاشة إزعاج. لمجموعة ميزات ⁨Core⁩ — التوليد والفحص والتشفير وأوّليّات خرج ⁨PDF/A⁩ و⁨PDF/UA،⁩ وتوقيع ⁨B-B⁩/⁨B-T⁩ بمفتاح برمجيّ (دون سير عمل التحقق الطويل الأمد وحضانة المفاتيح في ⁨Premium⁩) — يكون ⁨Core⁩ مكتملًا. وتنطبق العلامة المائية للتقييم فقط على منحة تقييم ⁨Premium،⁩ حيث تختبر مجموعة ميزات ⁨Pro⁩ و⁨Enterprise⁩ الكاملة خلف علامة قابلة للإزالة؛ ويزيلها ترخيص مدفوع بلا تغيير في شيفرة التطبيق. انظر الترخيص والتفعيل.

هل أحتاج تغييرات في الشيفرة للترقية إلى ⁨Pro⁩ أو ⁨Enterprise؟⁩

قسم بعنوان «هل أحتاج تغييرات في الشيفرة للترقية إلى ⁨Pro⁩ أو ⁨Enterprise؟⁩»

في الغالب لا. حين تثبّت nextpdf/premium، تكتشفه تكاملات الإطار والخادم تلقائيًا وتكشف عن القدرات الإضافية. وتُبقي معظم التطبيقات نقاط التكامل عالية المستوى نفسها؛ وقد تتطلّب بعض سير عمل ⁨Premium⁩ تهيئة أو استدعاءات خاصة بميزة. وتفعّل ظرف ترخيص موقّعًا مرة لكل نشر. انظر الترخيص والتفعيل.

هل يمكنني استخدام النواة في منتج تجاريّ مغلق المصدر؟

قسم بعنوان «هل يمكنني استخدام النواة في منتج تجاريّ مغلق المصدر؟»

نعم. ليس في ترخيص ⁨Apache⁩ ⁨2.0⁩ أي قيد غير تجاريّ. يجوز لك استخدام النواة في منتجات تجارية مغلقة المصدر أو مدفوعة أو داخلية، شريطة أن تفي بالتزامات النسبة وNOTICE وألا تعامل ترخيص الشيفرة إذنًا باستخدام علامة ⁨NextPDF.⁩ انظر ترخيص المنتج والعلامة التجارية واستخدام الماركة.

هل يستطيع قراءة ملفات ⁨PDF⁩ وتحليلها، أم كتابتها فقط؟

قسم بعنوان «هل يستطيع قراءة ملفات ⁨PDF⁩ وتحليلها، أم كتابتها فقط؟»

كلاهما، بتحفّظ. يكتب ⁨NextPDF⁩ ملفات ⁨PDF⁩ ويقرأها أيضًا: تقرأ وحدة ⁨Inspect⁩ ملفًا موجودًا في InspectResult مهيكَل ببيانات تعقيد وخطوط وصور وخطر، ويمكنك دمج المستندات الموجودة وتقسيمها. ووحدة ⁨Inspect⁩ موسومة بأنها تجريبية، فقد يتغيّر شكل نتيجتها بين الإصدارات الثانوية — استخدمها للتشخيص والبوّابات، لا بوصفها عقدًا طويل العمر. انظر وحدة ⁨Inspect⁩.

هل يُنتج نصًّا قابلًا للتحديد والبحث؟

قسم بعنوان «هل يُنتج نصًّا قابلًا للتحديد والبحث؟»

نعم. تُصدر كل من الواجهة الانسيابية وخط أنابيب writeHtml() المضمّن محتوى نصّ حقيقيّ، لا صورًا نقطية، فالخرج قابل للتحديد والبحث. ويُبقي writeHtmlChrome() لعارض ⁨Artisan⁩ النصّ قابلًا للتحديد أيضًا. انظر أول ملف ⁨PDF⁩ لك.

يتضمّن محرّك النواة خط أنابيب ⁨HTML⁩ بـ⁨PHP⁩ صرفة. يعرض writeHtml() جزء ⁨HTML⁩ بمجموعة جزئية مدعومة من ⁨CSS⁩ مباشرةً في الصفحة، بلا متصفّح وبلا نداء شبكيّ. وحين يحتاج تخطيط إلى دقّة متصفّح كاملة — مثل ⁨flexbox⁩ أو ⁨grid⁩ أو خطوط الويب — ثبّت عارض ⁨Artisan⁩ واستدعِ writeHtmlChrome(). وقبل أن تعتمد على خاصية، تحقق من مصفوفة دعم ⁨CSS⁩.

تعمل الأسماء المستعارة للخطوط القياسية المضمّنة مثل ⁨Helvetica⁩ بلا إعداد لنصّ ⁨WinAnsi⁩ البسيط، فلا يحتاج أول مستند لك ملفات خطوط. وتلائم الخطوط اللاتينية القياسية المضمّنة نصّ ⁨WinAnsi⁩ الأساسيّ؛ ويستخدم ⁨Symbol⁩ و⁨ZapfDingbats⁩ ترميزَيهما الخاصَّين؛ ولعرض كتابات أخرى تسجّل وتضمّن خطًّا تدعم خريطة محارفه ومسار تشكيله تلك الكتابة. انظر مصفوفة دعم الخطوط و وحدة الخطوط.

هل يدعم ⁨PDF/A⁩ وإمكانية الوصول ‏(⁨PDF/UA⁩)؟

قسم بعنوان «هل يدعم ⁨PDF/A⁩ وإمكانية الوصول ‏(⁨PDF/UA⁩)؟»

نعم، بحدّ واضح: دعم ملف تعريف ليس مطابقةً له. تشحن النواة مميِّز المطابقة وأوّليّات الوسم — يمكّن enableTaggedPdf() خرج بنية ⁨PDF⁩ الموسومة المستخدَمة في سير عمل ⁨PDF/UA،⁩ ويختار enablePdfA() ملف تعريف خرج ⁨PDF/A⁩ في ⁨Core؛⁩ وتضيف إصدارات ⁨Premium⁩ سير عمل وأدوات تأليف أرشيفيّ أعلى مستوى (تحقق وسياسة وعمليات إنتاج) فوقها. يُصدر ⁨NextPDF⁩ الآثار البنيوية التي يتطلّبها ملف تعريف؛ ويقرّر مدقّق مستقلّ مثل ⁨veraPDF⁩ ما إذا كان ملف معيّن مطابقًا فعلًا. انظر المطابقة و وحدة إمكانية الوصول.

تستطيع النواة إنتاج توقيعات ⁨CMS SignedData⁩ لصيغة رسائل التعمية ‏(⁨CMS⁩) وتطبيق طوابع ⁨RFC 3161⁩ الزمنية (مستوى ⁨B-T⁩)، مستخدمةً خوارزميات مفتاح برمجيّ مدعومة عبر مزوّد التوقيع المهيّأ. وتعتمد شيفرتك على عقد SignerInterface، فالاستدعاء نفسه يعمل عبر الإصدارات. أما مستويا ⁨PAdES B-LT⁩ و⁨B-LTA⁩ الطويلان الأمد، وحضانة مفاتيح ⁨HSM⁩ و⁨PKCS#11،⁩ والتوقيعات المؤهَّلة فقدرات ⁨Enterprise⁩؛ ويأتي سير عمل التوقيع المدعوم بالسحابة و⁨KMS⁩ في ⁨Pro⁩. تُنتج النواة بنى ⁨B-B⁩ و ⁨B-T⁩ الأساسية. انظر وحدة التوقيع.

هل هو آمن للعامل وآمن للخيوط؟

قسم بعنوان «هل هو آمن للعامل وآمن للخيوط؟»

Document أحاديّ الاستخدام: بمجرد أن تكتب واحدًا، أنشئ نسخة جديدة للمستند التالي بدلًا من إعادة استخدامه. وهذا يجعله ملائمًا طبيعيًا لنموذج “لكل طلب، لكل وظيفة” الذي تستخدمه ⁨PHP-FPM⁩ وعمّال الطوابير والأُطُر — فكل وحدة عمل تبني مستندها الخاص. وحين تحلّل أو تؤلّف مدخلًا غير موثوق، شغّل ذلك العمل في عامل مقيَّد وأبقِ حارسات الموارد (maxFiles و maxTotalBytes وmaxBytes) ضيّقة. انظر وحدة المستند و نموذج تهديد المحرّك.

هو حتميّ بنيويًا، لكن غير متطابق بايتًا ببايت افتراضيًا. ينتج تشغيلان للمدخل نفسه ملفات ⁨PDF⁩ متساوية بنيويًا، لكن كلًّا منها يحمل مقطورة و/ID مستند جديدين، فتختلف البايتات. ويضيف التوقيع والطوابع الزمنية تباينًا آخر لكل تشغيل بالتصميم. خطّط للمقارنات حول المساواة البنيوية، أو طبّع الحقول المتقلّبة، بدلًا من توقّع بايتات متطابقة عبر التشغيلات.

أودِع composer.lock فيحلّ كل عامل منشور إصدار المحرّك نفسه، ثم انشر كما تنشر أي مكتبة ⁨PHP⁩ — لا يحتاج التوليد الأصلي خادمًا خفيًّا أو متصفّحًا أو شبكة؛ أما الطوابع الزمنية ‏(⁨B-T⁩) أو الأصول البعيدة أو جسر المتصفّح الاختياريّ فتتطلّب وصولًا شبكيًا مهيّأً. إذا احتاجت خدمات غير ⁨PHP⁩ المحرّك، فشغّل ⁨NextPDF Server⁩، الذي يكشفه عبر بروتوكول سياق النموذج ‏(⁨MCP⁩) و⁨REST⁩ و⁨gRPC.⁩ ولـ⁨Premium،⁩ ضع ظرف الترخيص الموقّع حيث يحمّله النشر وشغّل خطوة التفعيل لمرة واحدة؛ وتعني حالة الترخيص المخبَّأة أن المعالجة العادية لا تحتاج خدمة ترخيص، فالنشرات المعزولة عن الشبكة مدعومة. انظر تثبيت ⁨NextPDF⁩ و الترخيص والتفعيل.

إلى أين آخذ فشلًا حين يقع خطأ ما؟

قسم بعنوان «إلى أين آخذ فشلًا حين يقع خطأ ما؟»

يبلّغ ⁨NextPDF⁩ عن الأخطاء بصنف استثناء ⁨PHP،⁩ لا برمز خطأ نصّيّ، وتحمل الاستثناءات الواعية بالسياق حقول تشخيص مهيكَلة. وتربط قاعدة معرفة استكشاف الأخطاء حالات الفشل الشائعة في التوقيع و ⁨PDF/A⁩ و⁨PDF/UA⁩ والخطوط والوسم والتشفير بسببها وحلّها.