Перетворення 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‑схеми, якщо підсистеми вимагають суворого форматування.
  • Обробляйте виключення API делікатно; блок catch для ApiException записує деталі помилки, що допомагає у вирішенні проблем.

Висновок

У цьому посібнику ви пройшли процес конвертації PDF у XML за допомогою Aspose.BarCode Cloud SDK for PHP. Тепер у вас є готовий до запуску зразок коду, альтернатива cURL та набір кращих практик, які забезпечують точне та ефективне вилучення штрих‑коду. Пам’ятайте, що для розгортання у продакшн потрібна платна підписка; під час оцінки рішення ви можете розпочати з тимчасової ліцензії зі сторінки тимчасової ліцензії. Інтегруйте SDK у ваш робочий процес, тестуйте з реальними документами, і ви зможете впевнено автоматизувати конвеєри даних, керовані штрих‑кодами.

Питання та відповіді

Q: Як у PHP здійснюється конвертація PDF у XML з урахуванням різних символьних кодів штрих‑коду?
A: SDK підтримує широкий спектр символьних кодів «з коробки». Ви можете вказати додаткові параметри в RecognizeBarcodeRequest, якщо потрібно обмежити пошук певними типами. Дивіться довідка API для повного списку.

Q: Чи існує скрипт PHP для конвертації PDF у XML, який працює без підключення до інтернету?
A: Cloud SDK вимагає підключення до мережі, оскільки обробка виконується на серверах Aspose. Для офлайн‑сценаріїв вам знадобиться рішення на місці, яке не підтримується цією бібліотекою.

Q: Які кращі практики для підвищення продуктивності конвертації PDF у XML у PHP?
A: Використовуйте потокове читання файлів, повторно використовуйте об’єкт Configuration і вибирайте пресет HighPerformance. Також групуйте кілька файлів в одному скрипті, щоб зменшити накладні витрати на з’єднання.

Q: Де я можу знайти більше прикладів вилучення штрих‑коду та генерації XML?
A: Офіційна документація містить багато фрагментів коду, а спільнота на форумі Aspose.BarCode Cloud SDK for PHP є хорошим місцем для задавання конкретних питань.

Читати далі