創建沉浸式文件,讓使用者能在 PDF 內直接旋轉、縮放和探索 3‑維模型,是提升產品目錄、工程報告和培訓手冊的強大方式。 Aspose.Words Cloud SDK for .NET 提供雲端函式庫,使在將 DOCX 檔案轉換為 PDF 時,輕鬆嵌入和保留 3D 內容。本指南將教您如何在 C# 中產生互動式 3D PDF,查看完整程式碼範例,探索等效的 cURL REST 呼叫,並了解實際應用的部署考量。
3D PDF 生成情境需求
開發人員在構建工程門戶或互動產品手冊時,通常需要提供包含嵌入式 3D 模型的 PDF。典型的需求包括:
- 來源文件必須是已包含 3D 模型(U3D 或 PRC 格式)的 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.docx、output.pdf等)以符合實際檔案位置,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如遇任何問題,請參閱官方文件或聯繫支援團隊以獲得協助。
使用 cURL 和 REST API 執行 3D PDF 轉換
相同的操作可以透過 cURL 呼叫執行,針對 Aspose.Words Cloud REST 端點。
- 取得存取令牌 (將佔位符替換為您的憑證)。
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"
- 上傳 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
- 請求 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
- 下載產生的 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 臨時授權頁面.