Aspose.OMR Cloud SDK for Java 使開發人員能夠直接從 Java 應用程式使用光學標記辨識 (OMR) 功能。本指南示範如何在 Java 中執行 PDF 轉換為 JSON 的過程,涵蓋設定、程式碼實作、效能調校與故障排除。

PDF 轉 JSON 轉換 - 前置條件與設定

在開始之前,請確保您具備以下條件:

  • Java Development Kit (JDK) 8 或更高版本 已安裝在您的機器上。
  • Maven 用於依賴管理。
  • 擁有 Aspose Cloud 帳戶以及 client ID 和 client secret。

此頁面下載最新版本。

透過 Maven 安裝 SDK:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-omr-cloud</artifactId>
    <version>23.12</version>
</dependency>

或者使用命令列:

mvn install com.aspose:aspose-omr-cloud

將以下 import 語句添加到您的 Java 專案中:

import com.aspose.omr.cloud.ApiClient;
import com.aspose.omr.cloud.Configuration;
import com.aspose.omr.cloud.api.OMRApi;
import com.aspose.omr.cloud.model.*;

您還需要配置身份驗證:

Configuration.getDefaultApiClient().setBasePath("https://api.aspose.cloud");
Configuration.getDefaultApiClient().setClientId("YOUR_CLIENT_ID");
Configuration.getDefaultApiClient().setClientSecret("YOUR_CLIENT_SECRET");

在 Java 中將 PDF 轉換為 JSON

核心任務是將 PDF 檔案發送到 OMR 服務,並接收提取資料的 JSON 表示。SDK 抽象化了 HTTP 呼叫,讓您專注於業務邏輯。

Aspose.OMR Cloud SDK for Java 的主要功能

  • 高精度 OMR 處理 用於掃描的答題紙。
  • 批次處理 支援多個 PDF。
  • 直接 JSON 輸出 適用於下游服務。
  • 內建記憶體最佳化 用於大型文件。

使用 Aspose.OMR Cloud SDK 進行 PDF 轉 JSON 的效能調校

在轉換大量 PDF 或非常大的檔案時,請考慮以下事項:

  • 啟用 streaming mode 以避免將整個 PDF 載入記憶體。
  • 為大量工作負載增加 JVM heap size (-Xmx2g 或更高)。
  • 使用 parallel streams 同時處理檔案。

大型 PDF 轉換的記憶體管理使用 Aspose.OMR Cloud SDK

大型 PDF 可能導致 OutOfMemoryError。為了緩解:

  • 使用 extractPageRange 參數以 區塊 方式處理頁面。
  • 在使用完畢後立即釋放 OMRTask 物件。
  • 使用像 VisualVM 之類的工具監控記憶體使用情況。

常見 PDF 轉 JSON 轉換問題的故障排除

錯誤訊息 可能原因 解決方法
401 Unauthorized 無效的客戶端憑證 驗證客戶端 ID/密碼並重新產生令牌
InvalidFileFormat 上傳的檔案不是 PDF 確保檔案具有 .pdf 副檔名且 MIME 類型正確
ConversionTimeout 大檔案超過預設逾時時間 ApiClient 設定中增加逾時時間

在 Java 中將 PDF 轉換為 JSON 的步驟

  1. 初始化 OMR 客戶端:使用已配置的 ApiClient 建立 OMRApi 的實例。
    OMRApi omrApi = new OMRApi();
    
  2. 上傳 PDF 檔案:使用 omrApi.uploadFile 將 PDF 發送至雲端。
    文件說明:官方文件
    API 參考:API 參考
  3. 建立轉換任務:呼叫 omrApi.createTask,傳入已上傳檔案的 ID 並請求 JSON 輸出。
    OMRTaskRequest request = new OMRTaskRequest();
    request.setFileId(uploadedFileId);
    request.setOutputFormat("json");
    OMRTaskResponse task = omrApi.createTask(request);
    
  4. 輪詢任務完成狀態:持續檢查 omrApi.getTaskStatus(task.getId()),直到狀態為 Completed
    while (!omrApi.getTaskStatus(task.getId()).getStatus().equals("Completed")) {
        Thread.sleep(2000);
    }
    
  5. 下載 JSON 結果:使用 omrApi.downloadResult(task.getResultFileId()) 取得 JSON 檔案。
    byte[] jsonData = omrApi.downloadResult(task.getResultFileId());
    Files.write(Paths.get("output.json"), jsonData);
    

Java 中的 PDF 轉 JSON - 完整程式碼範例

以下範例示範如何使用 Aspose.OMR Cloud SDK for Java,將本機 PDF 檔案完整地轉換為 JSON 文件。

注意: 此程式碼範例展示了核心功能。在您的專案中使用之前,請確保更新檔案路徑(sample.pdfoutput.json)以符合實際檔案位置,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如遇任何問題,請參閱官方文件或聯絡支援團隊尋求協助。

使用 cURL 的雲端文件轉換 REST API

Aspose.OMR Cloud SDK 也提供了一個可直接使用 cURL 呼叫的 REST API。以下是典型的步驟。

1. 驗證並取得存取權杖

curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

2. 上傳來源 PDF

curl -X POST "https://api.aspose.cloud/v4.0/omr/files" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@sample.pdf"

3. 請求 JSON 轉換

curl -X POST "https://api.aspose.cloud/v4.0/omr/tasks" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"fileId":"UPLOADED_FILE_ID","outputFormat":"json"}'

4. 下載生成的 JSON 檔案

curl -X GET "https://api.aspose.cloud/v4.0/omr/files/RESULT_FILE_ID/content" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.json

如需了解更多详情,请参阅官方 API 文档

結論

在 Java 中將 PDF 轉換為 JSON 變得簡單,只需使用 Aspose.OMR Cloud SDK for Java。該庫負責檔案上傳、OMR 處理和 JSON 生成,讓開發人員能專注於將輸出整合到其應用程式中。請記得取得適當的授權以供正式環境使用;您可以從 臨時授權頁面 獲取臨時授權,或在產品頁面上查看完整的定價方案。安裝 SDK 後,配合效能優化的程式碼與清晰的錯誤處理,您即可可靠地大規模從 PDF 中提取結構化資料。

常見問題

Java 中的 PDF 轉 JSON 庫如何處理複雜的表單佈局?
SDK 會解析 PDF 的視覺元素,並將其映射到保留層次結構的 JSON 架構。對於複雜的佈局,您可能需要調整 OMR 模板或對 JSON 進行後處理。請參閱官方文件以了解模板自訂。

我可以在 Java 中執行 PDF 轉 JSON 的轉換而不失去格式嗎?
是的。轉換會保留表單欄位的邏輯結構。雖然視覺樣式不屬於 JSON,但位置資料確保您在需要時可以重新構建版面。請參閱 在 Java 中執行 PDF 轉 JSON 並保持格式的轉換 章節以獲得最佳實踐。

是否支援在 Java 中將 PDF 轉換為 JSON 的批次處理?
當然支援。SDK 的批次 API 允許您在單一請求中提交多個 PDF 檔案,從而實現高效的 PDF to JSON Batch Processing in Java。管理返回的任務 ID 以取得每個 JSON 結果。

閱讀更多