将复杂的 3D 模型转换为单个可共享的 PDF 是工程团队的常见需求,因为他们需要将可视化数据嵌入报告或文档中。Aspose.3D Cloud SDK for .NET 提供了强大的库,使在 C# 中进行 3D 到 PDF 的转换变得简洁可靠。在本指南中,您将学习如何设置 SDK、编写转换代码、使用等效的 cURL 命令,以及微调转换设置以获得最佳性能。完成后,您将拥有一个可集成到任何 .NET 应用程序中的完整功能解决方案。

开始之前:先决条件和安装

  • 操作系统: Windows、Linux 或 macOS,使用 .NET 6.0+ 运行时。
  • IDE: Visual Studio 2022 或任何支持 .NET 开发的编辑器。
  • Aspose Cloud Account: 您需要从 Aspose Cloud 仪表板获取 ClientIdClientSecret
  • NuGet 包: 通过命令行安装 SDK。
dotnet add package Aspose.3D-Cloud

从官方发布页面下载最新的二进制文件和文档: Aspose.3D Cloud SDK for .NET Download。安装包后,将以下配置片段添加到项目中,以使用 Aspose Cloud 进行身份验证。

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};

配置完成后,您已准备好开始转换过程。

C# 中的 3D 转 PDF 转换:逐步演练

步骤 1:加载源文档

首先,在磁盘上定位 3D 模型文件(OBJSTLFBX、等),然后创建一个 FileInfo 对象。

string inputFilePath = Path.Combine(Environment.CurrentDirectory, "model.obj");
var inputFile = new FileInfo(inputFilePath);

步骤 2:定义输出参数

将目标格式设置为 pdf,并可选择指定存储选项。SDK 将返回一个包含 PDF 数据的 Stream

string targetFormat = "pdf";   // Output format
string outPath = null;         // Let the API return the file stream
string storage = null;         // Default storage
string folder = null;          // Root folder

第3步:调用 Conversion API

ThreeDApi 客户端上调用 PostConvert3D。此调用执行实际的转换。

Stream pdfStream = threeDApi.PostConvert3D(
    file: inputFile,
    format: targetFormat,
    outPath: outPath,
    storage: storage,
    folder: folder
);

有关此方法的更多详细信息,请参阅 API 参考

步骤 4:将 PDF 流保存到磁盘

将返回的流写入本地机器上的文件。

string outputFilePath = Path.Combine(Environment.CurrentDirectory, "model.pdf");
using (var fileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write))
{
    pdfStream.CopyTo(fileStream);
}

第5步:优雅地处理错误

将转换逻辑包装在 try‑catch 块中,以捕获 API 和运行时异常。

try
{
    // Conversion code here
}
catch (ApiException apiEx)
{
    Console.WriteLine($"API error: {apiEx.ErrorCode} - {apiEx.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"Unexpected error: {ex.Message}");
}

通过这些步骤,您已经完成了完整的 C# 中的 3D 转 PDF 转换 工作流。

完整工作示例:在 C# 中将 3D 转换为 PDF

下面的代码演示了上述完整实现。

using System;
using System.IO;
using Aspose.ThreeD.Cloud.Sdk.Api;
using Aspose.ThreeD.Cloud.Sdk.Client;
using Aspose.ThreeD.Cloud.Sdk.Model;

namespace ThreeDToPdfDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Configuration – replace with your actual Aspose Cloud credentials
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };

// Initialize the ThreeD API client
            var threeDApi = new ThreeDApi(config);

// Input 3D model file (OBJ, STL, FBX, etc.)
            string inputFilePath = Path.Combine(Environment.CurrentDirectory, "model.obj");
            var inputFile = new FileInfo(inputFilePath);

// Desired output PDF file
            string outputFilePath = Path.Combine(Environment.CurrentDirectory, "model.pdf");

// Conversion parameters
            string targetFormat = "pdf";          // Output format
            string outPath = null;                // Let the API return the file stream
            string storage = null;                // Default storage
            string folder = null;                 // Root folder

try
            {
                // Perform conversion – the API returns a Stream containing the PDF data
                Stream pdfStream = threeDApi.PostConvert3D(
                    file: inputFile,
                    format: targetFormat,
                    outPath: outPath,
                    storage: storage,
                    folder: folder
                );

// Write the resulting PDF stream to disk
                using (var fileStream = new FileStream(outputFilePath, FileMode.Create, FileAccess.Write))
                {
                    pdfStream.CopyTo(fileStream);
                }

Console.WriteLine($"Conversion successful. PDF saved to: {outputFilePath}");
            }
            catch (ApiException apiEx)
            {
                Console.WriteLine($"API error: {apiEx.ErrorCode} - {apiEx.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unexpected error: {ex.Message}");
            }
        }
    }
}

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

3D 转 PDF 转换 使用 cURL 和 REST API

如果您更喜欢语言无关的方法,您可以使用原始 HTTP 调用执行相同的转换。

  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"
  1. 上传源 3D 文件
curl -X PUT "https://api.aspose.cloud/v3.0/3d/storage/file/model.obj" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "model.obj"
  1. 请求转换
   curl -X POST "https://api.aspose.cloud/v3.0/3d/convert?format=pdf&outPath=model.pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -F "file=@model.obj"
  1. 下载生成的 PDF
curl -X GET "https://api.aspose.cloud/v3.0/3d/storage/file/model.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o "model.pdf"

这些命令映射了 SDK 工作流,适用于集成测试或自动化脚本。欲了解更多详情,请参阅官方 API 文档

微调转换设置

SDK 提供了多个参数,让您能够控制转换过程:

  • targetFormat - 确定输出格式。将其设置为 "pdf" 会触发 3D 转 PDF 转换。
  • outPath - 当保持 null 时,API 返回流;提供路径可让服务直接将文件存储到云存储中。
  • storage - 如果有多个容器,可选择特定的云存储位置。
  • folder - 在存储中定义子文件夹以组织文件。

调整这些选项可以提升 .NET 中的 3D 转 PDF 转换性能,尤其是在处理大型模型或批量操作时。

结论

您现在已经掌握了使用 Aspose.3D Cloud SDK for .NET C# 中的 3D 转 PDF 转换。本文档涵盖了从环境设置、代码实现到基于 REST 的 cURL 命令以及用于提升速度和可靠性的微调选项的所有内容。请记得为生产环境获取正式许可证;产品页面上提供了定价信息,您也可以从 临时许可证页面 获取临时许可证。将此工作流集成到您的应用程序中,以自动生成展示您 3D 资产的高质量 PDF 文档。

常见问题

如何在 C# 中使用 Aspose 执行 3D 到 PDF 的转换?
使用 ThreeDApi 类的 PostConvert3D 方法。提供源文件,将 format 设置为 "pdf",并处理返回的 Stream 以保存 PDF。

我可以在批处理过程中自动化 3D 转 PDF 转换吗?
是的。遍历文件路径集合,对每个模型调用相同的转换代码。SDK 的无状态 API 使其易于集成到后台服务或 CI 流水线中。

在处理大型 3D 模型的 C# 文件时,需要考虑哪些要点?
建议对输入和输出文件使用流式处理,而不是将整个模型加载到内存中。示例使用 FileInfo 作为源,并将 PDF 流直接写入磁盘,从而降低内存压力。

在哪里可以找到 Aspose.3D Cloud SDK for .NET 的授权信息?
访问产品页面获取定价详情,并从临时授权页面获取试用或临时授权。

Read More