PDF إلى مستند DOCX في PHP هو طلب شائع عندما تحتاج إلى ملفات Word قابلة للتحرير من ملفات PDF للقراءة فقط. يوفر GroupDocs.Conversion Cloud SDK for PHP مكتبة قوية تتعامل مع هذه المهمة بدقة عالية. في هذا الدرس ستقوم بإعداد المكتبة، وتستعرض مثالًا تفصيليًا للشفرة، وتتعرف على كيفية استدعاء واجهة REST API باستخدام cURL للنشر السحابي. في النهاية ستكون جاهزًا لدمج تحويل PDF إلى DOCX في تطبيقات PHP الخاصة بك.
قبل البدء: المتطلبات المسبقة والتثبيت
لمتابعة هذا الدليل تحتاج إلى:
- PHP 7.4 أو أعلى مثبت على جهاز التطوير أو الخادم الخاص بك.
- Composer لإدارة التبعيات.
- حساب GroupDocs Cloud (معرف العميل والسر الخاص) - يمكنك إنشاء واحد على بوابة GroupDocs.
- مساحة قرص كافية لملف PDF المصدر والملف DOCX الناتج.
قم بتثبيت المكتبة باستخدام Composer:
composer require groupdocs-conversion-cloud
قم بتنزيل أحدث حزمة أو عرض المصدر على GitHub: رابط التحميل. بعد التثبيت، أنت جاهز للبدء في الترميز.
تحويل مستند PDF إلى DOCX في PHP - بناءه خطوة بخطوة
فيما يلي دليل مختصر يوضح كل عملية أساسية. يظهر الكود الكامل لاحقًا في قسم التنفيذ الكامل لـ PHP لتحويل المستندات إلى DOCX.
الخطوة 1: تحميل PDF المصدر
أنشئ كائنًا من ConversionApi واشره إلى ملف PDF الذي تريد تحويله.
use GroupDocs\Conversion\Configuration;
use GroupDocs\Conversion\Api\ConversionApi;
$config = new Configuration('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');
$api = new ConversionApi($config);
$sourcePath = 'input.pdf';
الخطوة 2: تهيئة إعدادات التحويل
حدد تنسيق الإخراج ومسار الوجهة. تسمح لك فئة ConvertOptions بضبط حدود الذاكرة بدقة لملفات PDF الكبيرة، مما يحسن أداء تحويل PDF إلى DOCX في PHP.
use GroupDocs\Conversion\Model\ConvertOptions;
$options = new ConvertOptions();
$options->setFilePath($sourcePath);
$options->setOutputPath('output.docx');
$options->setFormat('docx');
// Optional: $options->setMemoryLimit(1024); // in MB
الخطوة 3: تنفيذ التحويل
أرسل الطلب إلى خدمة السحابة. تقوم هذه المكالمة الوحيدة للـ API بالعمل الشاق.
use GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest;
$request = new ConvertDocumentRequest($options);
$api->convertDocument($request);
الخطوة 4: استرجاع النتيجة
تم حفظ ملف DOCX المحول في المسار الذي حددته. يمكنك الآن تقديمه للمستخدم أو تخزينه للمعالجة لاحقًا.
echo "Conversion completed. DOCX saved to output.docx";
الخطوة 5: تنظيف الموارد
تخلص من مثيل API إذا كنت تقوم بتشغيل العديد من التحويلات في حلقة. إعادة استخدام نفس المثيل أكثر كفاءة لـ خدمة مصغرة لتحويل PDF إلى DOCX في PHP.
unset($api);
تنفيذ PHP الكامل لتحويل المستندات إلى DOCX
الشفرة التالية تجمع جميع الخطوات في سكريبت واحد قابل للتنفيذ.
<?php
require 'vendor/autoload.php';
use GroupDocs\Conversion\Configuration;
use GroupDocs\Conversion\Api\ConversionApi;
use GroupDocs\Conversion\Model\ConvertOptions;
use GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest;
// ==== Configuration ====
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$config = new Configuration($clientId, $clientSecret);
$api = new ConversionApi($config);
// ==== Input / Output ====
$sourcePath = __DIR__ . '/input.pdf';
$outputPath = __DIR__ . '/output.docx';
// ==== Conversion Options ====
$options = new ConvertOptions();
$options->setFilePath($sourcePath);
$options->setOutputPath($outputPath);
$options->setFormat('docx');
// Example of performance tuning
$options->setMemoryLimit(1024); // 1 GB
// ==== Convert ====
$request = new ConvertDocumentRequest($options);
try {
$api->convertDocument($request);
echo "PDF successfully converted to DOCX. File saved at: $outputPath\n";
} catch (Exception $e) {
echo "Conversion failed: " . $e->getMessage() . "\n";
}
// ==== Cleanup ====
unset($api);
?>
ملاحظة: هذا المثال البرمجي يوضح الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسارات الملفات (
input.pdf,output.docx, إلخ) لتطابق المواقع الفعلية للملفات، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشاكل، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع منتدى الدعم للحصول على المساعدة.
تنفيذ تحويل المستند عبر REST API باستخدام cURL
إذا كنت تفضل التفاعل مع الخدمة مباشرةً، فإن أوامر cURL التالية توضح سير العمل الكامل.
1. المصادقة والحصول على رمز الوصول
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
2. تحميل ملف PDF المصدر
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/input.pdf"
3. طلب تحويل PDF إلى DOCX
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert?outputFormat=docx&outputPath=/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"filePath":"/input.pdf"}'
4. تنزيل ملف DOCX المحول
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.docx
يمكن تغليف هذه الأوامر في سكريبت PHP بسيط أو استخدامها في خطوط أنابيب CI أداة سطر أوامر لتحويل PDF إلى DOCX في PHP. لمزيد من التفاصيل، راجع مرجع API.
الخاتمة
إن دمج تحويل PDF إلى DOCX في PHP سهل مع GroupDocs.Conversion Cloud SDK for PHP. لقد تعلمت كيفية إعداد المكتبة، وتشغيل تحويل خطوة بخطوة، واستدعاء نفس الوظيفة عبر طلبات REST. تدعم المكتبة كل من النشر السحابي والنشر داخل المؤسسة، مما يمنحك مرونة لتصاميم الميكروسيرفيس أو تثبيتات الخوادم التقليدية. تذكر مراجعة خيارات التسعير على صفحة المنتج والحصول على ترخيص مؤقت من صفحة الترخيص المؤقت قبل الانتقال إلى الإنتاج. برمجة سعيدة!
الأسئلة الشائعة
كيف يمكنني تنفيذ تحويل مستند PDF إلى DOCX في PHP على‑premise؟
نشر المكتبة على خادمك الخاص، وتكوين معرف العميل والسر، وتشغيل كود التحويل محليًا. لا يلزم أي حركة مرور شبكة خارجية بعد المصادقة.
ما هي أفضل طريقة لتحسين سرعة التحويل لملفات PDF الكبيرة؟
أعد استخدام مثيل واحد من ConversionApi، وزد حد الذاكرة في PHP، وفعل البث عن طريق ضبط الخيارات المناسبة في ConvertOptions. هذا يقلل من الحمل الزائد ويعزز أداء تحويل PDF إلى DOCX في PHP.
هل يمكنني استخدام المكتبة في حاوية Docker لخدمة مصغرة؟
نعم. قم بتضمين خطوة تثبيت Composer في ملف Dockerfile الخاص بك، وانسخ سكريبت PHP الخاص بك، وافتح نقطة نهاية تستدعي منطق التحويل. هذا ينشئ خدمة مصغرة قابلة للنقل لتحويل PDF إلى DOCX في PHP.
هل هناك حزمة Composer لهذه الوظيفة؟
المكتبة موزعة عبر Composer. قم بتثبيتها باستخدام composer require groupdocs-conversion-cloud وإدارة التحديثات من خلال ملف composer.json.
