바코드가 포함된 PDF 파일을 구조화된 XML 로 변환하는 것은 기계 판독 데이터가 필요한 재고 및 물류 시스템에서 자주 요구됩니다. Aspose.BarCode Cloud SDK for PHP 은 이 변환을 간단하고 확장 가능하게 만드는 클라우드 기반 라이브러리를 제공합니다. 이 가이드에서는 SDK 설정 방법, PDF를 읽고 바코드 정보를 추출한 뒤 결과를 XML로 기록하는 전체 PHP 스크립트 실행 방법, 동등한 cURL 워크플로 및 모범 사례 팁을 배웁니다.

PHP에서 PDF를 XML로 변환 - 전체 작동 샘플

이 예제는 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";
}

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로(input.pdf, output.xml 등)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 다음 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에게 문의하십시오.

cURL을 사용한 REST API를 통한 PDF에서 XML로 변환

순수 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_IDYOUR_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 문서를 참조하십시오.

PHP에서 PDF를 XML로 변환하는 방법

  1. Configure Credentials - Configuration 객체는 AppSidAppKey를 저장합니다.
$config = new Configuration();
$config->setAppSid('YOUR_CLIENT_ID');
$config->setAppKey('YOUR_CLIENT_SECRET');
  1. Create the API Client - BarcodeApi는 모든 바코드 작업의 진입점입니다.
$barcodeApi = new BarcodeApi(null, $config);
  1. Read the PDF File - 스크립트는 PDF를 스트리밍하여 전체 파일을 메모리에 로드하지 않으며, 이는 큰 문서에서 중요합니다.
$handle = fopen($inputFile, 'rb');
$pdfData = stream_get_contents($handle);
fclose($handle);
  1. Build the Recognition Request - RecognizeBarcodeRequest는 소스 유형(pdf), 성능 프리셋, 그리고 결과를 xml 형식으로 반환하도록 지정합니다.
$recognizeRequest = new RecognizeBarcodeRequest();
$recognizeRequest->setFile($pdfData);
$recognizeRequest->setType('pdf');
$recognizeRequest->setPreset('HighPerformance');
$recognizeRequest->setResultFormat('xml');
  1. Execute and Save - postBarcodeRecognize는 요청을 클라우드 서비스에 전송합니다. 반환된 XML 문자열은 output.xml에 기록됩니다.
$xmlResult = $barcodeApi->postBarcodeRecognize($recognizeRequest);
file_put_contents($outputFile, $xmlResult);

이 단계에서는 PHP에서 PDF를 XML로 변환하는 스크립트를 설명하고, SDK가 HTTP 통신을 추상화하여 비즈니스 로직에 집중할 수 있게 하는 방식을 보여줍니다.

사전 요구 사항 및 Aspose.BarCode Cloud SDK 설치

  • PHP version - PHP 7.4 이상이 필요합니다.
  • Composer - SDK는 Composer를 통해 배포됩니다. 아래 명령으로 설치한 후 패키지를 요구하십시오.
composer require aspose-barcode-cloud
  • 자격 증명 - Aspose Cloud 계정에 가입하고, 애플리케이션을 생성한 다음 Client IdClient Secret을 얻으세요.

  • Configuration snippet - 설치 후, 이전에 표시된 구성 코드를 추가하여 자격 증명으로 SDK를 초기화합니다.

전체 다운로드 가능한 바이너리 목록은 다운로드 페이지를 방문하십시오.

신뢰할 수 있는 PDF를 XML로 변환하기 위한 실용적인 팁

  • Configuration 객체 재사용을 통해 동일 스크립트에서 여러 변환을 수행하면 반복 인증 오버헤드를 피할 수 있습니다.
  • 대용량 PDF 스트리밍을 사용하여 전체를 로드하지 마세요; 샘플에서는 fopenstream_get_contents를 사용합니다.
  • HighPerformance 프리셋 선택은 속도가 필요하고 PDF에 표준 바코드 유형이 포함된 경우에 적합합니다.
  • 생성된 XML 검증을 XML 스키마에 맞게 수행하여 다운스트림 시스템이 엄격한 형식을 요구하는 경우에 대비합니다.
  • API 예외를 우아하게 처리하십시오; ApiException에 대한 catch 블록은 오류 세부 정보를 로그에 기록하여 문제 해결에 도움이 됩니다.

결론

이 가이드는 PHP에서 Aspose.BarCode Cloud SDK for PHP를 사용하여 PDF를 XML로 변환하는 과정을 안내했습니다. 이제 실행 준비가 된 코드 샘플, cURL 대안 및 정확하고 효율적인 바코드 추출을 보장하는 모범 사례 세트를 보유하고 있습니다. 프로덕션 배포에는 유료 구독이 필요함을 기억하십시오; 솔루션을 평가하는 동안 임시 라이선스 페이지에서 임시 라이선스로 시작할 수 있습니다. SDK를 워크플로에 통합하고 실제 문서로 테스트하면 자신 있게 바코드 기반 데이터 파이프라인을 자동화할 수 있습니다.

자주 묻는 질문

Q: PHP에서 PDF를 XML로 변환할 때 다양한 바코드 심볼리지를 어떻게 처리합니까?
A: SDK는 기본적으로 광범위한 심볼리지를 지원합니다. 특정 유형으로 검색을 제한해야 하는 경우 RecognizeBarcodeRequest에서 추가 옵션을 지정할 수 있습니다. 전체 목록은 API reference를 참조하세요.

Q: 인터넷 연결 없이 작동하는 PHP용 PDF를 XML로 변환하는 스크립트가 있나요?
A: Cloud SDK는 처리 작업이 Aspose 서버에서 수행되기 때문에 네트워크 연결이 필요합니다. 오프라인 시나리오에서는 이 라이브러리에서 지원하지 않는 온프레미스 솔루션이 필요합니다.

Q: PHP에서 PDF를 XML로 변환할 때 성능을 최적화하기 위한 모범 사례는 무엇인가요?
A: 파일을 스트리밍으로 읽고, Configuration 객체를 재사용하며, HighPerformance 프리셋을 선택하십시오. 또한, 연결 오버헤드를 줄이기 위해 여러 파일을 하나의 스크립트에서 배치 처리하세요.

Q: 바코드 추출 및 XML 생성에 대한 더 많은 예제는 어디서 찾을 수 있나요?
A: 공식 문서에서는 다양한 코드 스니펫을 제공하며, 커뮤니티 포럼인 Aspose.BarCode Cloud SDK for PHP은 구체적인 질문을 하기 좋은 장소입니다.

자세히 보기