Преобразование файлов 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. -
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 и набор рекомендаций, обеспечивающих точное и эффективное извлечение штрих‑кодов. Помните, что для развертывания в продакшн требуется платная подписка; вы можете начать с временной лицензии со страницы временной лицензии, оценивая решение. Интегрируйте SDK в ваш рабочий процесс, тестируйте с реальными документами, и вы сможете автоматизировать конвейеры данных, управляемые штрих‑кодами, с уверенностью.
Часто задаваемые вопросы
Q: Как конвертация PDF в XML в PHP обрабатывает различные символьные наборы штрихкодов?
A: SDK поддерживает широкий спектр символьных наборов из коробки. При необходимости ограничить поиск определёнными типами, вы можете указать дополнительные параметры в RecognizeBarcodeRequest. См. справку API для полного списка.
Q: Есть ли скрипт на PHP для конвертации PDF в XML, который работает без доступа к интернету?
A: Cloud SDK требует сетевого подключения, поскольку обработка происходит на серверах Aspose. Для офлайн‑сценариев вам понадобится решение on‑premise, которое не покрывается этой библиотекой.
Q: Каковы лучшие практики повышения производительности преобразования PDF в XML в PHP?
A: Используйте потоковое чтение файлов, переиспользуйте объект Configuration и выбирайте предустановку HighPerformance. Кроме того, объединяйте обработку нескольких файлов в одном скрипте, чтобы уменьшить накладные расходы на соединения.
Q: Где я могу найти больше примеров извлечения штрихкода и генерации XML?
A: Официальная документация предоставляет множество фрагментов кода, а форум сообщества по адресу Aspose.BarCode Cloud SDK for PHP — хорошее место для задавания конкретных вопросов.