تحويل ملفات PDF التي تحتوي على باركود إلى XML منظم هو طلب شائع لأنظمة الجرد واللوجستيات التي تحتاج إلى بيانات قابلة للقراءة آليًا. يوفر Aspose.BarCode Cloud SDK for PHP مكتبة سحابية تجعل هذا التحويل بسيطًا وقابلًا للتوسع. في هذا الدليل ستتعلم كيفية إعداد SDK، تشغيل برنامج PHP كامل يقرأ ملف PDF، يستخرج معلومات الباركود، ويكتب النتيجة كملف XML، بالإضافة إلى سير عمل cURL مكافئ ونصائح لأفضل الممارسات.
تحويل PDF إلى XML في PHP - مثال عملي كامل
يوضح هذا المثال كيفية استخدام Aspose.BarCode Cloud SDK for PHP لقراءة ملف PDF، والتعرف على الباركود، وإخراج النتيجة كملف XML.
<?php
require __DIR__ . '/vendor/autoload.php';
use Aspose\BarCode\Cloud\Configuration;
use Aspose\BarCode\Cloud\Api\BarcodeApi;
use Aspose\BarCode\Cloud\Model\RecognizeBarcodeRequest;
use Aspose\BarCode\Cloud\ApiException;
try {
// -------------------------------------------------
// 1. Configuration – replace with your credentials
// -------------------------------------------------
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID'); // App SID / Client ID
$config->setAppKey('YOUR_CLIENT_SECRET'); // App Key / Client Secret
// -------------------------------------------------
// 2. Initialise the Barcode API client
// -------------------------------------------------
$barcodeApi = new BarcodeApi(null, $config);
// -------------------------------------------------
// 3. Validate and read the source PDF (input.pdf)
// -------------------------------------------------
$inputFile = __DIR__ . '/input.pdf';
if (!is_file($inputFile) || !is_readable($inputFile)) {
throw new RuntimeException('Input PDF file is missing or unreadable.');
}
// Use a stream to avoid loading the whole file into memory at once
$handle = fopen($inputFile, 'rb');
if ($handle === false) {
throw new RuntimeException('Failed to open input PDF file.');
}
$pdfData = stream_get_contents($handle);
fclose($handle);
// -------------------------------------------------
// 4. Build the recognition request (PDF → XML)
// -------------------------------------------------
$recognizeRequest = new RecognizeBarcodeRequest();
$recognizeRequest->setFile($pdfData); // binary PDF content
$recognizeRequest->setType('pdf'); // source type
$recognizeRequest->setPreset('HighPerformance'); // performance hint
$recognizeRequest->setResultFormat('xml'); // ask for XML output
// -------------------------------------------------
// 5. Execute the request
// -------------------------------------------------
$xmlResult = $barcodeApi->postBarcodeRecognize($recognizeRequest);
// -------------------------------------------------
// 6. Write the XML to output.xml
// -------------------------------------------------
$outputFile = __DIR__ . '/output.xml';
$bytesWritten = file_put_contents($outputFile, $xmlResult);
if ($bytesWritten === false) {
throw new RuntimeException('Failed to write XML output file.');
}
echo "PDF successfully converted to XML. Output saved at: {$outputFile}\n";
} catch (ApiException $apiEx) {
// Handles errors returned by Aspose.BarCode Cloud service
error_log('Aspose.BarCode API error: ' . $apiEx->getMessage());
echo "API error occurred. Check logs for details.\n";
} catch (Exception $ex) {
// Handles all other runtime errors
error_log('General error: ' . $ex->getMessage());
echo "An error occurred. Check logs for details.\n";
}
ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسارات الملفات (
input.pdf,output.xml, إلخ) لتطابق المواقع الفعلية للملفات لديك، وتحقق من تثبيت جميع الاعتمادات المطلوبة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
تحويل PDF إلى XML عبر REST API باستخدام cURL
إذا كنت تفضل نهج REST النقي، يمكن تنفيذ نفس التحويل باستخدام أوامر cURL. تُظهر الخطوات أدناه كيفية الحصول على رمز الوصول، تحميل ملف PDF، طلب التعرف على الباركود، وتنزيل نتيجة XML.
# 1. Get an access token
curl -X POST "https://api.aspose.cloud/v3.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"
استبدل YOUR_CLIENT_ID و YOUR_CLIENT_SECRET ببيانات اعتماد Aspose الخاصة بك. يحتوي الرد على access_token الذي ستستخدمه في المكالمات اللاحقة.
# 2. Upload the source PDF (optional – you can also send the file directly)
curl -X PUT "https://api.aspose.cloud/v3.0/barcode/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-T "input.pdf"
# 3. Execute the PDF → XML barcode recognition
curl -X POST "https://api.aspose.cloud/v3.0/barcode/recognize" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "file=@input.pdf" \
-F "type=pdf" \
-F "preset=HighPerformance" \
-F "resultFormat=xml"
يحتوي جسم الاستجابة على XML مع بيانات الباركود المعترف بها.
# 4. Save the XML response to a file
curl -X GET "https://api.aspose.cloud/v3.0/barcode/recognize/result" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xml
للحصول على قائمة كاملة بالمعلمات وأكواد الأخطاء، راجع وثائق API الرسمية.
كيف يعمل تحويل PDF إلى XML في PHP
- تكوين بيانات الاعتماد - كائن
ConfigurationيخزنAppSidوAppKeyالخاصين بك.
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');
$config->setAppKey('YOUR_CLIENT_SECRET');
- إنشاء عميل API -
BarcodeApiهو نقطة الدخول لجميع عمليات الباركود.
$barcodeApi = new BarcodeApi(null, $config);
- قراءة ملف PDF - يقوم السكريبت ببث ملف PDF لتجنب تحميل الملف بالكامل في الذاكرة، وهو أمر مهم للوثائق الكبيرة.
$handle = fopen($inputFile, 'rb');
$pdfData = stream_get_contents($handle);
fclose($handle);
- إنشاء طلب التعرف -
RecognizeBarcodeRequestيحدد نوع المصدر (pdf)، وإعداد الأداء، وأن النتيجة يجب إرجاعها كـxml.
$recognizeRequest = new RecognizeBarcodeRequest();
$recognizeRequest->setFile($pdfData);
$recognizeRequest->setType('pdf');
$recognizeRequest->setPreset('HighPerformance');
$recognizeRequest->setResultFormat('xml');
- تنفيذ وحفظ -
postBarcodeRecognizeيرسل الطلب إلى خدمة السحابة. يتم كتابة سلسلة XML المسترجعة إلىoutput.xml.
$xmlResult = $barcodeApi->postBarcodeRecognize($recognizeRequest);
file_put_contents($outputFile, $xmlResult);
توضح هذه الخطوات نص تحويل PDF إلى XML في PHP وتظهر كيف يقوم SDK بتجريد التواصل عبر HTTP، مما يتيح لك التركيز على منطق الأعمال.
المتطلبات المسبقة والتثبيت لـ Aspose.BarCode Cloud SDK
- إصدار PHP - يلزم PHP 7.4 أو أحدث.
- Composer - يتم توزيع SDK عبر Composer. قم بتثبيته باستخدام الأمر أدناه ثم استدعِ الحزمة.
composer require aspose-barcode-cloud
-
بيانات الاعتماد - سجّل للحصول على حساب Aspose Cloud، أنشئ تطبيقًا، واحصل على
Client IdوClient Secret. -
مقتطف التكوين - بعد التثبيت، أضف كود التكوين (الموضح سابقًا) لتهيئة SDK باستخدام بيانات الاعتماد الخاصة بك.
للحصول على القائمة الكاملة للملفات القابلة للتنزيل، قم بزيارة صفحة التحميل.
نصائح عملية لتحويل PDF إلى XML موثوق
- إعادة استخدام كائن Configuration للقيام بتحويلات متعددة في نفس السكريبت لتجنب عبء المصادقة المتكرر.
- تدفق ملفات PDF الكبيرة بدلاً من تحميلها بالكامل؛ يستخدم المثال
fopenوstream_get_contentsلهذا الغرض. - اختر إعداد
HighPerformanceعندما تحتاج إلى السرعة وتحتوي ملفات PDF الخاصة بك على أنواع باركود قياسية. - تحقق من صحة XML المُولد مقابل مخطط XML إذا كانت الأنظمة اللاحقة تتطلب تنسيقًا صارمًا.
- معالجة استثناءات API بشكل سلس؛ يقوم كتلة الـ catch لـ
ApiExceptionبتسجيل تفاصيل الخطأ، مما يساعد في استكشاف الأخطاء وإصلاحها.
الخلاصة
لقد قدم لك هذا الدليل خطوة بخطوة عملية تحويل PDF إلى XML في PHP باستخدام Aspose.BarCode Cloud SDK for PHP. لديك الآن عينة كود جاهزة للتنفيذ، بديل cURL، ومجموعة من أفضل الممارسات لضمان استخراج الباركود بدقة وكفاءة. تذكر أن عمليات النشر في بيئة الإنتاج تتطلب اشتراكًا مدفوعًا؛ يمكنك البدء برخصة مؤقتة من صفحة الترخيص المؤقت أثناء تقييم الحل. دمج SDK في سير عملك، واختبره مع مستندات حقيقية، وستتمكن من أتمتة خطوط البيانات المدفوعة بالباركود بثقة.
الأسئلة المتكررة
س: كيف يتعامل تحويل PDF إلى XML في PHP مع أنماط الباركود المختلفة؟
ج: يدعم SDK مجموعة واسعة من الأنماط مباشرةً. يمكنك تحديد خيارات إضافية في RecognizeBarcodeRequest إذا كنت بحاجة لتقييد البحث بأنواع معينة. راجع مرجع API للحصول على القائمة الكاملة.
Q: هل هناك سكريبت تحويل PDF إلى XML في PHP يعمل بدون اتصال بالإنترنت؟
A: يتطلب Cloud SDK اتصالًا بالشبكة لأن المعالجة تتم على خوادم Aspose. للسيناريوهات غير المتصلة تحتاج إلى حل محلي داخل المؤسسة، وهو غير مشمول في هذه المكتبة.
Q: ما هي أفضل الممارسات لتحسين أداء تحويل PDF إلى XML في PHP؟
A: استخدم البث لقراءة الملفات، وأعد استخدام كائن Configuration، واختر إعداد HighPerformance. كذلك، قم بتجميع عدة ملفات في سكريبت واحد لتقليل عبء الاتصال.
Q: أين يمكنني العثور على مزيد من الأمثلة لاستخراج الباركود وتوليد XML؟
A: الوثائق الرسمية الوثائق توفر العديد من مقتطفات الشيفرة، ومنتدى المجتمع على Aspose.BarCode Cloud SDK for PHP هو مكان جيد لطرح أسئلة محددة.