将 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 账户。
  • 具备进行云调用的互联网访问权限。

将 SDK 添加到您的项目中,使用下面显示的 Maven 依赖,并从官方下载页面下载最新的 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 参考 中获取。

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 等)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 Aspose.Cells Cloud 通过 cURL 的 REST API 转换

如果您更喜欢语言无关的方法,可以使用针对 Aspose.Cells Cloud REST API 的简单 cURL 命令执行相同的转换。

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

这些命令在不编写任何 Java 代码的情况下执行相同的 Java 中的 3D 转 PDF 转换 工作流。欲了解更多详情,请参阅 官方 API 文档

结论

通过上述步骤,您可以可靠地使用 Aspose.Cells Cloud SDK for Java 将 3D Excel 工作簿转换为高质量的 PDF 文件。该库负责渲染 3D 图表的繁重工作,而 PDF 保存选项则让您能够控制文件大小和性能。请记得为生产环境获取合适的许可证;产品页面上提供了定价详情,您也可以从临时许可证页面获取临时许可证。掌握这些知识后,您就可以在 Java 应用程序中集成 3D 转 PDF 转换,并向终端用户交付精美的报告。

FAQs

  • 如何在 Java 中使用 Aspose.Cells 实现 3D 转 PDF 转换?
    使用 SDK 上传您的 XLSX 文件,配置 PdfSaveOptions,调用 postWorkbookSaveAs,并下载生成的 PDF。本文中的完整代码示例展示了确切的步骤顺序。

  • 是否有办法在 Java 中进行 3D 图表 PDF 转换而无需编写代码?
    是的,提供的 REST API 和 cURL 命令可以让您在任何能够发出 HTTP 请求的平台上实现相同的结果。

  • 3D 可视化 PDF 转换与标准 Excel 转 PDF 转换有什么区别?
    3D 可视化需要额外渲染图表对象,SDK 会自动处理。标准转换可能会跳过这些 3D 渲染步骤,导致图形缺失。

  • 我可以在 java Excel 转换为 PDF 的非 3D 工作簿中使用相同的工作流吗?
    当然可以。相同的 API 调用适用于任何 Excel 文件;如果不需要 3D‑specific 选项,只需省略或调整这些选项。

阅读更多