將包含條碼的 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.pdfoutput.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. 配置憑證 - Configuration 物件儲存您的 AppSidAppKey
    $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);
    

以下步驟說明了 PHP 中的 PDF 轉 XML 轉換腳本,並展示了 SDK 如何抽象化 HTTP 通訊,讓您專注於業務邏輯。

前置條件與安裝 Aspose.BarCode Cloud SDK

  • PHP version - PHP 7.4 或更新版本是必需的。
  • Composer - SDK 透過 Composer 發佈。使用以下指令安裝,然後引用該套件。
composer require aspose-barcode-cloud
  • Credentials - 註冊 Aspose Cloud 帳戶,建立應用程式,並取得 Client IdClient Secret

  • 配置片段 - 安裝後,將先前顯示的配置代碼加入以使用您的憑證初始化 SDK。

欲取得完整的可下載二進位檔清單,請前往下載頁面

可靠的 PDF 轉 XML 轉換實用技巧

  • 重用 Configuration 物件 以在同一腳本中進行多次轉換,避免重複的驗證開銷。
  • 串流大型 PDF 而不是一次性載入全部;範例使用 fopenstream_get_contents 來實現此目的。
  • 選擇 HighPerformance 預設,當您需要速度且 PDF 包含標準條碼類型時。
  • 驗證產生的 XML 是否符合 XML 架構,若下游系統要求嚴格格式。
  • 優雅地處理 API 例外ApiException 的 catch 區塊會記錄錯誤細節,有助於故障排除。

結論

本指南已帶領您使用 Aspose.BarCode Cloud SDK for PHP 在 PHP 中完成 PDF 轉 XML 的轉換。您現在擁有可直接執行的程式碼範例、cURL 替代方案,以及一套最佳實踐,以確保條碼提取的準確性與效率。請記住,正式上線需要付費訂閱;在評估解決方案時,您可以從 臨時授權頁面 取得臨時授權。將 SDK 整合到您的工作流程中,使用真實文件進行測試,您就能自信地自動化條碼驅動的資料管道。

常見問題

Q: PDF 轉 XML 的 PHP 轉換如何處理不同的條碼編碼?
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 是提出具體問題的好去處。

閱讀更多