將 Excel 工作簿中的複雜 3D 圖表轉換為可攜式 PDF 檔案是報告與共享視覺資料時常見的需求。Aspose.Cells Cloud SDK for Java 提供了功能強大的雲端庫,為 Java 開發人員簡化此任務。在本指南中,我們將逐步說明在 Java 中完成 3D 到 PDF 轉換的整個流程,從環境準備到取得最終文件。您將看到詳細的程式碼說明、完整範例,以及用於 REST API 整合的等效 cURL 命令。

設定 Aspose.Cells Cloud SDK for Java

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

  • 已安裝 Java 17 或更新版本。
  • 用於相依性管理的 Maven 或 Gradle。
  • 擁有 Client IdClient Secret 的 Aspose Cloud 帳戶。
  • 需要能連接網際網路以呼叫雲端服務。

使用以下顯示的 Maven 依賴將 SDK 添加到您的專案,並從官方下載頁面下載最新的 JAR。

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells-cloud</artifactId>
    <version>26.7</version>
</dependency>

您也可以直接從下載 URL獲取該庫。

使用您的憑證配置客戶端。此程式碼片段直接取自完整範例。

Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
// Optional: config.setBasePath("https://api.aspose.cloud"); // default

在完成配置後,您已準備好開始轉換工作流程。

Java 中的 3D 轉 PDF 轉換 - 步驟式說明

步驟 1:上傳 Excel 工作簿至雲端儲存

首先,上傳包含 3D 圖表的 XLSX 檔案。FilesApi 處理上傳。

FilesUploadResult uploadResult = filesApi.uploadFile("", new File(localInputPath));
if (uploadResult == null || uploadResult.getUploaded().isEmpty()) {
    System.err.println("Upload failed.");
    return;
}

第 2 步:準備 PDF 保存選項

透過啟用字型快取、影像壓縮與記憶體最佳化,微調 PDF 輸出。這些選項有助於在保持 3D 視覺品質的同時,降低 PDF 檔案大小。

PdfSaveOptions pdfOptions = new PdfSaveOptions();
pdfOptions.setCacheFont(true);
pdfOptions.setCompressImages(true);
pdfOptions.setImageQuality(80);
pdfOptions.setEnableMemoryOptimization(true);

第 3 步:將工作簿轉換為 PDF

呼叫 CellsApipostWorkbookSaveAs 方法以執行轉換。此方法的 API 參考可在 Aspose.Cells API Reference 中取得。

WorkbookResponse convertResponse = cellsApi.postWorkbookSaveAs(
        remoteInputName,          // source workbook name
        "pdf",                    // target format
        remoteOutputName,         // output path in cloud storage
        pdfOptions,               // save options
        "",                       // folder (root)
        null);                    // storage (default)

步驟 4:下載產生的 PDF

成功轉換後,下載 PDF 位元組並寫入本機檔案。

byte[] pdfBytes = filesApi.downloadFile(remoteOutputName);
try (FileOutputStream fos = new FileOutputStream(new File(localOutputPath))) {
    fos.write(pdfBytes);
}
System.out.println("Conversion completed successfully. PDF saved to " + localOutputPath);

步驟 5:可選清理

從雲端儲存中移除臨時檔案,以保持您的帳戶整潔。

filesApi.deleteFile(remoteInputName, null, null);
filesApi.deleteFile(remoteOutputName, null, null);

完整的 Java 實作範例:3D 轉 PDF 轉換 - 完整程式碼示例

以下範例示範如何使用 Aspose.Cells Cloud SDK for Java 將 3D Excel 活頁簿端到端轉換為 PDF。

import com.aspose.cloud.cells.api.CellsApi;
import com.aspose.cloud.cells.api.FilesApi;
import com.aspose.cloud.cells.client.ApiException;
import com.aspose.cloud.cells.client.Configuration;
import com.aspose.cloud.cells.model.PdfSaveOptions;
import com.aspose.cloud.cells.model.FilesUploadResult;
import com.aspose.cloud.cells.model.WorkbookResponse;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class AsposeCells3DToPdfExample {
    public static void main(String[] args) {
        // -------------------- Configuration --------------------
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        // Optional: config.setBasePath("https://api.aspose.cloud"); // default

// -------------------- API Instances --------------------
        CellsApi cellsApi = new CellsApi(config);
        FilesApi filesApi = new FilesApi(config);

// -------------------- Local & Remote Paths --------------------
        String localInputPath = "input.xlsx";      // Excel file containing 3D charts
        String remoteInputName = "input.xlsx";     // Name used in cloud storage
        String remoteOutputName = "output.pdf";    // Desired PDF name in cloud storage
        String localOutputPath = "output.pdf";     // Where to save the downloaded PDF

try {
            // -------------------- Upload Excel to Cloud --------------------
            FilesUploadResult uploadResult = filesApi.uploadFile("", new File(localInputPath));
            if (uploadResult == null || uploadResult.getUploaded().isEmpty()) {
                System.err.println("Upload failed.");
                return;
            }

// -------------------- Prepare PDF Save Options (Performance) --------------------
            PdfSaveOptions pdfOptions = new PdfSaveOptions();
            pdfOptions.setCacheFont(true);                     // Cache fonts for faster processing
            pdfOptions.setCompressImages(true);               // Compress images to reduce size
            pdfOptions.setImageQuality(80);                   // Balance quality and size
            pdfOptions.setEnableMemoryOptimization(true);     // Reduce memory footprint

// -------------------- Convert Workbook to PDF --------------------
            WorkbookResponse convertResponse = cellsApi.postWorkbookSaveAs(
                    remoteInputName,          // source workbook name
                    "pdf",                    // target format
                    remoteOutputName,         // output path in cloud storage
                    pdfOptions,               // save options
                    "",                       // folder (root)
                    null                      // storage (default)
            );

if (convertResponse == null || convertResponse.getCode() != 200) {
                System.err.println("Conversion failed.");
                return;
            }

// -------------------- Download Resulting PDF --------------------
            byte[] pdfBytes = filesApi.downloadFile(remoteOutputName);
            try (FileOutputStream fos = new FileOutputStream(new File(localOutputPath))) {
                fos.write(pdfBytes);
            }

System.out.println("Conversion completed successfully. PDF saved to " + localOutputPath);
        } catch (ApiException | IOException e) {
            e.printStackTrace();
        } finally {
            // -------------------- Optional Cleanup --------------------
            try {
                filesApi.deleteFile(remoteInputName, null, null);
                filesApi.deleteFile(remoteOutputName, null, null);
            } catch (ApiException ignored) {
            }
        }
    }
}

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

使用 cURL 的 REST API 轉換 (Aspose.Cells Cloud)

如果您偏好語言無關的方法,您可以使用簡單的 cURL 命令對 Aspose.Cells Cloud 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"

回應中包含一個 access_token,您將在後續呼叫中使用它。

2. 上傳來源 XLSX 檔案

curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/input.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@input.xlsx"

3. 將工作簿轉換為 PDF

curl -X POST "https://api.aspose.cloud/v3.0/cells/input.xlsx/saveAs/pdf?outputPath=output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "CacheFont": true,
           "CompressImages": true,
           "ImageQuality": 80,
           "EnableMemoryOptimization": true
         }'

4. 下載生成的 PDF

curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

這些指令執行相同的 3D 轉 PDF 轉換(Java) 工作流程,無需編寫任何 Java 程式碼。欲了解更多資訊,請參閱 官方 API 文件

結論

透過上述步驟,您可以可靠地將 3D Excel 工作簿轉換為高品質的 PDF 檔案,使用 Aspose.Cells Cloud SDK for Java。此函式庫負責處理 3D 圖表的渲染工作,而 PDF 儲存選項則讓您控制檔案大小與效能。請務必為正式環境取得適當的授權;產品頁面上提供價格資訊,且可從臨時授權頁面取得臨時授權。掌握這些知識後,您即可將 3D 轉 PDF 的轉換整合到 Java 應用程式中,為最終使用者提供精緻的報告。

常見問題

  • 如何在 Java 中使用 Aspose.Cells 實作 3D 轉 PDF 轉換?
    使用 SDK 上傳您的 XLSX 檔案,設定 PdfSaveOptions,呼叫 postWorkbookSaveAs,並下載產生的 PDF。本文中的完整程式碼範例展示了確切的步驟。

  • 是否有辦法在 Java 中執行 3D 圖表 PDF 轉換而不撰寫程式碼?
    是的,提供的 REST API 與 cURL 命令可讓您在任何能發送 HTTP 請求的平台上實現相同的結果。

  • 什麼是 3D 可視化 PDF 轉換與標準 Excel 轉 PDF 之間的差異?
    3D 可視化需要額外渲染圖表物件,SDK 會自動處理。標準轉換可能會跳過這些 3D 渲染步驟,導致圖形缺失。

  • 我可以對非‑3D 工作簿使用相同的 java Excel 轉 PDF 工作流程嗎?
    當然。相同的 API 呼叫適用於任何 Excel 檔案;如果不需要 3D‑特定選項,只需省略或調整它們。

閱讀更多