ユーザーが回転、ズーム、3 次元モデルを直接 PDF 内で探索できる没入型ドキュメントを作成することは、製品カタログ、エンジニアリングレポート、トレーニングマニュアルを強化する強力な方法です。Aspose.Words Cloud SDK for .NET は、DOCX ファイルを PDF に変換する際に、3D コンテンツを埋め込み、保持することを容易にするクラウドベースのライブラリを提供します。このガイドでは、C# でインタラクティブな 3D PDF を生成する方法を学び、完全なコードサンプルを確認し、同等の cURL REST 呼び出しを探り、実際のアプリケーション向けのデプロイ考慮事項を理解します。
3D PDF生成シナリオの要件
エンジニアリングポータルやインタラクティブな製品カタログを構築する開発者は、埋め込まれた3Dモデルを含むPDFを提供する必要があることがよくあります。典型的な要件は次のとおりです:
- ソースドキュメントは、すでに U3D または PRC 形式の 3D モデルを含む DOCX である必要があります。
- 生成された PDF は 3D データを保持し、Adobe Acrobat などのビューアでインタラクティブに表示できる必要があります。
- 変換プロセスは自動化され、サーバー上で実行され、大量のバッチでも手動介入なしで動作する必要があります。
従来のデスクトップツールはクラウド環境で信頼性のあるスクリプト化ができず、変換時に3Dストリームが削除されることがよくあります。そのため、3Dモデルを保持しながらPDF/A準拠を提供するプログラム的なソリューションが不可欠です。
アプローチ: Aspose.Words Cloud を活用した 3D PDF
Aspose.Words Cloud SDK for .NET は、Aspose の安全なサーバー上で実行される REST ベースの操作セットを提供します。シナリオに対応する主な機能は次のとおりです:
- DOCX ファイルを Aspose Cloud ストレージに直接アップロードします。
PdfSaveOptionsDataは、PDF の準拠性、フィールドの更新、そして重要なことに埋め込まれた 3D コンテンツの保存を制御できます。- ストリームを返す非同期変換メソッドで、出力ファイルをディスクに直接書き込むことができます。
これらの機能を組み合わせることで、CI パイプライン、Web サービス、またはバックグラウンド ジョブに統合できるクリーンな 3D から PDF へのワークフローを実現できます。詳細な 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 ストレージにアップロードし、同じ名前の既存ファイルがある場合は上書きします。
using (var fileStream = File.OpenRead(localDocxPath))
{
var uploadRequest = new UploadFileRequest(fileStream, remoteFileName);
await wordsApi.UploadFileAsync(uploadRequest);
}
DOCX にすでに U3D または PRC モデルが含まれていることを確認してください。これは SDK が保持する 3D Model Format です。
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);
}
変換後、必要に応じてクラウドストレージから一時ファイルを削除できます。
完全なコード例: C#でのインタラクティブ3D PDF生成
以下のコードは、開始から終了までの全プロセスを示しています。
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 変換の実行
同じ操作は、Aspose.Words Cloud の REST エンドポイントに対する cURL 呼び出しで実行できます。
- アクセストークンを取得する (プレースホルダーをあなたの資格情報に置き換えてください)。
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
- 3D保存を保持したPDF変換をリクエスト.
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 から PDF への自動化 をサポートします。
結論
C# でインタラクティブな 3D PDF を生成することは、Aspose.Words Cloud SDK for .NET を使用すれば簡単になります。上記の手順に従うことで、U3D または PRC モデルを埋め込み、PDF 変換時にそれらを保持し、.NET ライブラリまたは直接の REST 呼び出しのいずれかでワークフローを自動化できます。製品環境では適切なライセンスを取得し、Adobe Acrobat など 3D をサポートするビューアで生成された PDF をテストすることを忘れないでください。この機能により、エンジニアリング、マーケティング、トレーニングのシナリオ向けに、よりリッチで魅力的なドキュメントを提供できます。
よくある質問
C# と Aspose.Words Cloud を使用してインタラクティブな 3D PDF を生成するにはどうすればよいですか?
SDK を使用して、U3D または PRC モデルが既に含まれている DOCX をアップロードし、PdfSaveOptionsData を構成して 3D ストリームを保持し、ConvertDocumentAsync を呼び出します。この記事の完全なコード例は正確な手順を示しています。
PDF変換のために埋め込める3Dモデル形式は何ですか?
Aspose.Words Cloud は、PDF 内のインタラクティブな 3D コンテンツの標準形式である U3D および PRC 形式をサポートしています。
C#コードを書かずに変換を実行することは可能ですか?
はい、同じプロセスは cURL コマンドを使用して Aspose.Words Cloud REST API に対して実行できます。cURL セクションで示したように。
どこで価格とライセンス情報を確認できますか?
Commercial licensing details are available on the product page, and you can obtain a temporary license for evaluation from the 一時ライセンスページ.