将 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 Id 和 Client 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
调用 CellsApi 的 postWorkbookSaveAs 方法执行转换。此方法的 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.xlsx、output.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 选项,只需省略或调整这些选项。