創建沉浸式文件,讓使用者能在 PDF 內直接旋轉、縮放和探索 3‑維模型,是提升產品目錄、工程報告和培訓手冊的強大方式。 Aspose.Words Cloud SDK for .NET 提供雲端函式庫,使在將 DOCX 檔案轉換為 PDF 時,輕鬆嵌入和保留 3D 內容。本指南將教您如何在 C# 中產生互動式 3D PDF,查看完整程式碼範例,探索等效的 cURL REST 呼叫,並了解實際應用的部署考量。

3D PDF 生成情境需求

開發人員在構建工程門戶或互動產品手冊時,通常需要提供包含嵌入式 3D 模型的 PDF。典型的需求包括:

  • 來源文件必須是已包含 3D 模型(U3DPRC 格式)的 DOCX。
  • 產生的 PDF 必須保留 3D 資料,以便像 Adobe Acrobat 這樣的檢視器能夠互動式呈現。
  • 轉換過程應自動化、在伺服器上執行,且能在大量批次處理時無需人工干預。

傳統的桌面工具在雲端環境中無法可靠地腳本化,且在轉換過程中常會剝除 3D 流。因而需要一種在保留 3D 模型的同時提供 PDF/A 相容性的程式化解決方案。

方法:利用 Aspose.Words Cloud 生成 3D PDF

Aspose.Words Cloud SDK for .NET 提供一組基於 REST 的操作,這些操作在 Aspose 的安全伺服器上執行。針對該情境的主要功能包括:

  • 直接上傳 DOCX 檔案至 Aspose Cloud 儲存空間。
  • PdfSaveOptionsData 讓您能控制 PDF 合規性、欄位更新,且關鍵是保留嵌入的 3D 內容。
  • 非同步轉換方法會回傳串流,讓您能直接將輸出檔寫入磁碟。

結合這些功能可實現乾淨的 3D 轉 PDF 工作流程,並可整合至 CI 管道、Web 服務或背景工作。詳細的 API 資訊可在官方文件API 參考中取得。

在 C# 中生成交互式 3D PDF:實作

以下是一個逐步的實作說明。每個步驟都包含直接取自完整範例的簡短程式碼摘錄。

安裝 Aspose.Words Cloud SDK for .NET

首先,將 NuGet 套件新增至您的專案。

dotnet add package Aspose.Words-Cloud

您也可以從下載頁面下載二進位檔案。

設定 WordsApi 用戶端

使用您的客戶端憑證建立 Configuration 物件,並實例化 WordsApi

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};
var wordsApi = new WordsApi(config);

WordsApi 類別的文件位於 API 參考

上傳包含嵌入式 3D 模型的 DOCX

打開本機 DOCX 檔案並將其上傳至 Aspose Cloud storage,覆寫任何同名的現有檔案。

using (var fileStream = File.OpenRead(localDocxPath))
{
    var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
    await wordsApi.UploadFileAsync(uploadRequest);
}

確保 DOCX 已經包含 U3D 或 PRC 模型;這就是 SDK 所保留的 3D 模型格式

設定 PDF 儲存選項以保留 3D 內容

PdfSaveOptionsData 設定為保留 3D 流並使用 PDF/A‑1b 相容性。

var pdfOptions = new PdfSaveOptionsData
{
    UpdateFields = false,
    Compliance = PdfCompliance.PdfA1b,
    SaveFormat = "pdf"
};

這些選項是 3D to PDF Workflow 工作流程的一部分,確保互動模型保持完整。

轉換並下載互動式 3D PDF

呼叫轉換請求,並將產生的串流寫入本機 PDF 檔案。

var convertRequest = new ConvertDocumentRequest(
    remoteFileName,
    format: "pdf",
    saveOptions: pdfOptions
);

using (var pdfStream = await wordsApi.ConvertDocumentAsync(convertRequest))
using (var fileWriter = File.Create(outputPdfPath))
{
    await pdfStream.CopyToAsync(fileWriter);
}

轉換完成後,您可以選擇性地從雲端儲存中刪除臨時檔案。

完整程式碼範例:互動式 3D PDF 生成(C#)

以下程式碼示範了從頭到尾的完整流程。

using System;
using System.IO;
using System.Threading.Tasks;
using Aspose.Words.Cloud.Sdk;
using Aspose.Words.Cloud.Sdk.Model;
using Aspose.Words.Cloud.Sdk.Model.Requests;

namespace Generate3DPdfExample
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // -----------------------------------------------------------------
            // 1. Configure Aspose.Words Cloud client (replace with your credentials)
            // -----------------------------------------------------------------
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };
            var wordsApi = new WordsApi(config);

// -----------------------------------------------------------------
            // 2. Define file names and paths (generic placeholders)
            // -----------------------------------------------------------------
            const string localDocxPath = "input.docx";   // DOCX that already contains an embedded 3D model (U3D/PRC)
            const string remoteFileName = "input.docx"; // Name used in Aspose Cloud storage
            const string outputPdfPath = "output.pdf";

// -----------------------------------------------------------------
            // 3. Upload the DOCX to Aspose Cloud storage (overwrites if exists)
            // -----------------------------------------------------------------
            using (var fileStream = File.OpenRead(localDocxPath))
            {
                var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
                await wordsApi.UploadFileAsync(uploadRequest);
            }

// -----------------------------------------------------------------
            // 4. Prepare PDF save options – enable 3D content preservation
            // -----------------------------------------------------------------
            var pdfOptions = new PdfSaveOptionsData
            {
                // Preserve the embedded 3D model; the option name may vary depending on API version.
                // Setting 'UpdateFields' to false speeds up conversion when fields are not required.
                UpdateFields = false,
                // Use PDF/A-1b compliance to keep the document portable while still supporting 3D.
                Compliance = PdfCompliance.PdfA1b,
                // Ensure the output is a single PDF file.
                SaveFormat = "pdf"
            };

// -----------------------------------------------------------------
            // 5. Convert the uploaded DOCX to PDF with the defined options
            // -----------------------------------------------------------------
            var convertRequest = new ConvertDocumentRequest(
                remoteFileName,
                format: "pdf",
                saveOptions: pdfOptions
            );

using (var pdfStream = await wordsApi.ConvertDocumentAsync(convertRequest))
            using (var fileWriter = File.Create(outputPdfPath))
            {
                await pdfStream.CopyToAsync(fileWriter);
            }

// -----------------------------------------------------------------
            // 6. Clean up remote file (optional)
            // -----------------------------------------------------------------
            var deleteRequest = new DeleteFileRequest(remoteFileName);
            await wordsApi.DeleteFileAsync(deleteRequest);

Console.WriteLine($"3D PDF generated successfully at '{Path.GetFullPath(outputPdfPath)}'.");
        }
    }
}

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

使用 cURL 和 REST API 執行 3D PDF 轉換

相同的操作可以透過 cURL 呼叫執行,針對 Aspose.Words Cloud REST 端點。

  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. 上傳 DOCX,其中包含 3D 模型。
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/input.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @input.docx
  1. 請求 PDF 轉換並保留 3D
curl -X POST "https://api.aspose.cloud/v4.0/words/input.docx/saveAs/pdf" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "PdfSaveOptions": {
            "UpdateFields": false,
            "Compliance": "PdfA1b"
        }
      }' \
  -o output.pdf
  1. 下載產生的 PDF (先前的指令已經將它儲存在本機,但您也可以直接取得它)。

如需了解請求主體和其他參數的詳細資訊,請參閱官方 API 文件

部署 3D PDF 生成的考量

在將此解決方案整合到生產環境時,請注意以下要點:

  • 伺服器位置 - 轉換在 Aspose 的雲端伺服器上執行,請確保您的網路允許對 api.aspose.cloud 的外部 HTTPS 流量。
  • 授權 - 生產環境使用需要商業授權。您可以從臨時授權頁面取得臨時授權。
  • 可擴展性 - 由於 API 為無狀態,您可以在多個工作執行個體之間平行化上傳與轉換,以處理大量批次,支援完整的 3D to PDF Automation

結論

在 C# 中生成互動式 3D PDF 變得簡單,只需使用 Aspose.Words Cloud SDK for .NET。按照上述步驟,您可以嵌入 U3D 或 PRC 模型,在 PDF 轉換過程中保留它們,並使用 .NET 庫或直接的 REST 呼叫自動化工作流程。請記得為生產環境取得適當的授權,並在支援 3D 的檢視器(如 Adobe Acrobat)中測試生成的 PDF。憑藉此功能,您可以為工程、行銷和培訓場景提供更豐富、更具吸引力的文件。

常見問題

如何在 C# 中使用 Aspose.Words Cloud 生成交互式 3D PDF?
使用 SDK 上傳已包含 U3D 或 PRC 模型的 DOCX,配置 PdfSaveOptionsData 以保留 3D 流,然後呼叫 ConvertDocumentAsync。本文中的完整程式碼範例展示了確切的步驟。

我可以在 PDF 轉換中嵌入哪些 3D 模型格式?
Aspose.Words Cloud 支援 U3D 和 PRC 格式,這些是 PDF 中互動式 3D 內容的標準格式。

是否可以在不編寫任何 C# 代碼的情況下運行轉換?
是的,可以使用針對 Aspose.Words Cloud REST API 的 cURL 命令執行相同的過程,如 cURL 部分所示。

在哪裡可以找到價格和授權資訊?
Commercial licensing details are available on the product page, and you can obtain a temporary license for evaluation from the 臨時授權頁面.

閱讀更多