ユーザーが回転、ズーム、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.docxoutput.pdf など)を実際のファイル位置に合わせて更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。

cURL と REST API を使用した 3D PDF 変換の実行

同じ操作は、Aspose.Words Cloud の REST エンドポイントに対する 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"
  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. 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
  1. 結果の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 一時ライセンスページ.

詳細を見る