تبدیل فایل‌های 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 عمل می‌کند

  1. پیکربندی اعتبارها - شیء Configuration مقادیر AppSid و AppKey شما را ذخیره می‌کند.
    $config = new Configuration();
    $config->setAppSid('YOUR_CLIENT_ID');
    $config->setAppKey('YOUR_CLIENT_SECRET');
    
  2. ایجاد مشتری API - BarcodeApi نقطه ورودی برای تمام عملیات بارکد است.
    $barcodeApi = new BarcodeApi(null, $config);
    
  3. خواندن فایل PDF - اسکریپت PDF را به صورت جریان می‌خواند تا از بارگذاری کل فایل در حافظه جلوگیری کند، که برای اسناد بزرگ مهم است.
    $handle = fopen($inputFile, 'rb');
    $pdfData = stream_get_contents($handle);
    fclose($handle);
    
  4. ساختن درخواست شناسایی - RecognizeBarcodeRequest نوع منبع (pdf)، پیش‌تنظیم عملکرد، و این که نتیجه باید به صورت xml برگردانده شود را مشخص می‌کند.
    $recognizeRequest = new RecognizeBarcodeRequest();
    $recognizeRequest->setFile($pdfData);
    $recognizeRequest->setType('pdf');
    $recognizeRequest->setPreset('HighPerformance');
    $recognizeRequest->setResultFormat('xml');
    
  5. اجرای عملیات و ذخیره - postBarcodeRecognize درخواست را به سرویس ابری می‌فرستد. رشته XML بازگشتی در output.xml نوشته می‌شود.
    $xmlResult = $barcodeApi->postBarcodeRecognize($recognizeRequest);
    file_put_contents($outputFile, $xmlResult);
    

این مراحل اسکریپت تبدیل PDF به XML در PHP را نشان می‌دهند و نشان می‌دهند که چگونه SDK ارتباط HTTP را انتزاع می‌کند و به شما اجازه می‌دهد بر منطق کسب‌وکار تمرکز کنید.

پیش‌نیازها و نصب برای Aspose.BarCode Cloud SDK

  • PHP version - PHP 7.4 یا بالاتر مورد نیاز است.
  • Composer - SDK از طریق Composer توزیع می‌شود. آن را با فرمان زیر نصب کنید و سپس بسته را درخواست کنید.
composer require aspose-barcode-cloud
  • اعتبارها - برای یک حساب Aspose Cloud ثبت‌نام کنید، یک برنامه ایجاد کنید، و Client Id و Client Secret را دریافت کنید.

  • Configuration snippet - پس از نصب، کد پیکربندی (که قبلاً نشان داده شده است) را برای مقداردهی اولیه SDK با اعتبارهای خود اضافه کنید.

برای دریافت فهرست کامل باینری‌های قابل دانلود، به صفحه صفحه دانلود مراجعه کنید.

نکات عملی برای تبدیل قابل اعتماد PDF به XML

  • استفاده مجدد از شی Configuration برای تبدیل‌های متعدد در همان اسکریپت به‌منظور جلوگیری از هزینهٔ مکرر احراز هویت.
  • استریم PDFهای بزرگ به‌جای بارگذاری کامل آن‌ها؛ نمونه از fopen و stream_get_contents برای این منظور استفاده می‌کند.
  • انتخاب پیش‌تنظیم HighPerformance زمانی که به سرعت نیاز دارید و PDFهای شما شامل انواع بارکد استاندارد هستند.
  • اعتبارسنجی XML تولید شده در برابر یک طرح‌واره XML اگر سیستم‌های downstream به قالب‌بندی دقیق نیاز داشته باشند.
  • مدیریت استثناهای API به‌صورت مناسب؛ بلوک catch برای ApiException جزئیات خطا را ثبت می‌کند که به رفع مشکل کمک می‌کند.

نتیجه‌گیری

این راهنما شما را در تبدیل PDF به XML در PHP با استفاده از Aspose.BarCode Cloud SDK for PHP راهنمایی کرده است. اکنون یک نمونه کد آماده‑به‑اجرا، یک جایگزین cURL، و مجموعه‌ای از بهترین شیوه‌ها برای اطمینان از استخراج دقیق و کارآمد بارکد در اختیار دارید. به یاد داشته باشید که استقرارهای تولیدی نیاز به اشتراک پرداختی دارند؛ می‌توانید در حین ارزیابی راه‌حل، با یک لایسنس موقت از temporary license page شروع کنید. SDK را در جریان کاری خود ادغام کنید، با اسناد واقعی تست کنید، و می‌توانید با اطمینان خطوط لوله داده‑محور بر پایه بارکد را خودکار کنید.

سوالات متداول

Q: تبدیل PDF به XML در PHP چگونه انواع مختلف سمبولی‌های بارکد را مدیریت می‌کند؟
A: SDK به‌صورت پیش‌فرض از طیف گسترده‌ای از سمبولی‌ها پشتیبانی می‌کند. می‌توانید گزینه‌های اضافی را در RecognizeBarcodeRequest مشخص کنید اگر نیاز به محدود کردن جستجو به انواع خاصی دارید. برای فهرست کامل به API reference مراجعه کنید.

Q: آیا اسکریپتی برای تبدیل PDF به XML در PHP وجود دارد که بدون دسترسی به اینترنت کار کند؟
A: SDK ابری نیاز به اتصال شبکه دارد زیرا پردازش در سرورهای Aspose انجام می‌شود. برای سناریوهای آفلاین، به یک راه‌حل در‑محل نیاز دارید که توسط این کتابخانه پوشش داده نشده است.

Q: به بهترین روش‌ها برای بهبود عملکرد تبدیل PDF به XML در PHP چیست؟
A: از استریمینگ برای خواندن فایل‌ها استفاده کنید، شی Configuration را مجدداً استفاده کنید و پیش‌تنظیم HighPerformance را انتخاب کنید. همچنین، چندین فایل را در یک اسکریپت دسته‌بندی کنید تا هزینهٔ اتصال کاهش یابد.

Q: می‌توانم مثال‌های بیشتری برای استخراج بارکد و تولید XML کجا پیدا کنم؟
A: مستندات رسمی مستندات بسیاری از قطعه کدها را فراهم می‌کند و انجمن جامعه در Aspose.BarCode Cloud SDK for PHP مکان مناسبی برای پرسیدن سؤالات خاص است.

بیشتر بخوانید