Créer des documents immersifs qui permettent aux utilisateurs de faire pivoter, zoomer et explorer des modèles tridimensionnels directement à l’intérieur d’un PDF est un moyen puissant d’améliorer les catalogues de produits, les rapports d’ingénierie et les manuels de formation. Aspose.Words Cloud SDK for .NET fournit une bibliothèque basée sur le cloud qui facilite l’intégration et la préservation du contenu 3D lors de la conversion de fichiers DOCX en PDF. Dans ce guide, vous apprendrez à générer des PDF 3D interactifs en C#, à consulter un exemple de code complet, à explorer les appels REST cURL équivalents et à comprendre les considérations de déploiement pour des applications réelles.

Exigences du scénario de génération de PDF 3D

Développeurs créant des portails d’ingénierie ou des brochures produit interactives doivent souvent fournir des PDF contenant des modèles 3D intégrés. Les exigences typiques sont :

  • Le document source doit être un DOCX qui inclut déjà un modèle 3D au format U3D ou PRC .
  • Le PDF résultant doit conserver les données 3D afin que des visionneuses comme Adobe Acrobat puissent les rendre de manière interactive.
  • Le processus de conversion doit être automatisé, s’exécuter sur un serveur et fonctionner avec de gros lots sans intervention manuelle.

Les outils de bureau traditionnels ne peuvent pas être scriptés de manière fiable dans un environnement cloud, et ils suppriment souvent les flux 3D lors de la conversion. Une solution programmatique qui préserve le modèle 3D tout en offrant la conformité PDF/A est donc essentielle.

L’approche : exploiter Aspose.Words Cloud pour les PDF 3D

Aspose.Words Cloud SDK for .NET propose un ensemble d’opérations basées sur REST qui s’exécutent sur les serveurs sécurisés d’Aspose. Les principales capacités qui répondent au scénario incluent :

  • Téléversement direct de fichiers DOCX vers le stockage Aspose Cloud.
  • PdfSaveOptionsData qui vous permet de contrôler la conformité PDF, les mises à jour des champs et, surtout, la préservation du contenu 3D intégré.
  • Méthodes de conversion asynchrones qui renvoient un flux, vous permettant d’écrire le fichier de sortie directement sur le disque.

Ensemble, ces fonctionnalités permettent un flux de travail 3D vers PDF propre qui peut être intégré aux pipelines CI, aux services Web ou aux tâches en arrière-plan. Des informations détaillées sur l’API sont disponibles dans la documentation officielle et la référence de l’API.

Générer un PDF 3D interactif en C# : Implémentation

Voici une présentation détaillée étape par étape de l’implémentation. Chaque étape comprend un court extrait de code tiré directement de l’exemple complet.

Installer le Aspose.Words Cloud SDK for .NET

Tout d’abord, ajoutez le package NuGet à votre projet.

dotnet add package Aspose.Words-Cloud

Vous pouvez également télécharger les binaires depuis la page de téléchargement.

Configurer le client WordsApi

Créez un objet Configuration avec vos informations d’identification client et instanciez WordsApi.

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

La classe WordsApi est documentée dans la référence API.

Télécharger un DOCX contenant un modèle 3D intégré

Ouvrez le fichier DOCX local et téléchargez‑le vers le stockage Aspose Cloud, en écrasant tout fichier existant portant le même nom.

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

Assurez-vous que le DOCX inclut déjà un modèle U3D ou PRC ; c’est le format de modèle 3D que le SDK conserve.

Définir les options d’enregistrement PDF pour préserver le contenu 3D

Configure PdfSaveOptionsData pour conserver les flux 3D et utiliser la conformité PDF/A‑1b.

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

Ces options font partie du flux de travail 3D vers PDF qui garantit que le modèle interactif reste intact.

Convertir et télécharger le PDF 3D interactif

Appelez la requête de conversion et écrivez le flux résultant dans un fichier PDF local.

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);
}

Après la conversion, vous pouvez éventuellement supprimer le fichier temporaire du stockage cloud.

Exemple complet de code : génération interactive de PDF 3D en C#

Le code suivant montre l’ensemble du processus du début à la fin.

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)}'.");
        }
    }
}

Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (input.docx, output.pdf, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Effectuer une conversion PDF 3D avec cURL et l’API REST

La même opération peut être exécutée via des appels cURL contre les points de terminaison REST d’Aspose.Words Cloud.

  1. Obtenir un jeton d’accès (remplacez les espaces réservés par vos informations d’identification).
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. Télécharger le DOCX contenant le modèle 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. Demander la conversion PDF avec préservation 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. Télécharger le PDF résultant (la commande précédente l’a déjà enregistré localement, mais vous pouvez également le récupérer directement).

Pour plus de détails sur les corps de requête et les paramètres supplémentaires, consultez la documentation officielle de l’API.

Considérations de déploiement pour la génération de PDF 3D

Lors de l’intégration de cette solution dans un environnement de production, gardez à l’esprit les points suivants :

  • Emplacement du serveur - La conversion s’exécute sur les serveurs cloud d’Aspose, assurez‑vous donc que votre réseau autorise le trafic HTTPS sortant vers api.aspose.cloud.
  • Licence - Une licence commerciale est requise pour une utilisation en production. Vous pouvez commencer avec une licence temporaire depuis la page de licence temporaire.
  • Scalabilité - Étant donné que l’API est sans état, vous pouvez paralléliser les téléchargements et les conversions sur plusieurs instances de travail afin de gérer des lots à haut volume, en prenant en charge l’Automatisation 3D vers PDF.

Conclusion

Créer des PDF 3D interactifs en C# devient simple avec le Aspose.Words Cloud SDK for .NET. En suivant les étapes ci‑dessus, vous pouvez intégrer des modèles U3D ou PRC, les conserver lors de la conversion PDF et automatiser le flux de travail soit avec la bibliothèque .NET, soit avec des appels REST directs. N’oubliez pas d’obtenir une licence appropriée pour la production et de tester les PDF générés dans un visualiseur prenant en charge la 3D, comme Adobe Acrobat. Grâce à cette fonctionnalité, vous pouvez fournir des documents plus riches et plus attrayants pour les scénarios d’ingénierie, de marketing et de formation.

FAQ

Comment générer un PDF 3D interactif en C# avec Aspose.Words Cloud ?
Utilisez le SDK pour télécharger un DOCX contenant déjà un modèle U3D ou PRC, configurez PdfSaveOptionsData afin de conserver les flux 3D, puis appelez ConvertDocumentAsync. L’exemple complet de code dans cet article montre la séquence exacte.

Quels formats de modèle 3D puis-je intégrer pour la conversion PDF ?
Aspose.Words Cloud prend en charge les formats U3D et PRC, qui sont les formats standard pour le contenu 3D interactif dans les PDF.

Est-il possible d’exécuter la conversion sans écrire de code C# ?
Oui, le même processus peut être réalisé avec des commandes cURL contre l’API REST Aspose.Words Cloud, comme démontré dans la section cURL.

Où puis-je trouver les informations de tarification et de licence ?
Les détails de la licence commerciale sont disponibles sur la page du produit, et vous pouvez obtenir une licence temporaire pour l’évaluation depuis la page de licence temporaire.

En savoir plus