Crear documentos inmersivos que permitan a los usuarios rotar, hacer zoom y explorar modelos tridimensionales directamente dentro de un PDF es una forma poderosa de mejorar catálogos de productos, informes de ingeniería y manuales de capacitación. Aspose.Words Cloud SDK for .NET ofrece una biblioteca basada en la nube que facilita la incorporación y preservación de contenido 3D al convertir archivos DOCX a PDF. En esta guía aprenderá cómo generar PDF 3D interactivo en C#, verá un ejemplo de código completo, explorará las llamadas REST equivalentes en cURL y comprenderá consideraciones de implementación para aplicaciones del mundo real.

Requisitos del escenario de generación de PDF 3D

Los desarrolladores que crean portales de ingeniería o catálogos de productos interactivos a menudo necesitan entregar PDFs que contengan modelos 3D incrustados. Los requisitos típicos son:

  • El documento fuente debe ser un DOCX que ya incluya un modelo 3D en formato U3D o PRC.
  • El PDF resultante debe conservar los datos 3D para que visores como Adobe Acrobat puedan renderizarlos de forma interactiva.
  • El proceso de conversión debe estar automatizado, ejecutarse en un servidor y funcionar con lotes grandes sin intervención manual.

Las herramientas de escritorio tradicionales no pueden ser automatizadas de manera fiable en un entorno cloud, y a menudo eliminan los flujos 3D durante la conversión. Por lo tanto, es esencial una solución programática que preserve el modelo 3D y ofrezca cumplimiento con PDF/A.

El Enfoque: Aprovechando Aspose.Words Cloud para PDF 3D

Aspose.Words Cloud SDK for .NET ofrece un conjunto de operaciones basadas en REST que se ejecutan en los servidores seguros de Aspose. Las capacidades clave que abordan el escenario incluyen:

  • Carga directa de archivos DOCX en el almacenamiento de Aspose Cloud.
  • PdfSaveOptionsData que le permite controlar el cumplimiento de PDF, la actualización de campos y, lo que es crucial, la preservación del contenido 3D incrustado.
  • Métodos de conversión asíncronos que devuelven un flujo, lo que le permite escribir el archivo de salida directamente en el disco.

Juntas, estas características permiten un flujo de trabajo limpio de 3D a PDF que puede integrarse en pipelines de CI, servicios web o trabajos en segundo plano. La información detallada de la API está disponible en la documentación oficial y en la referencia de API.

Generar PDF 3D interactivo en C#: Implementación

A continuación se muestra una guía paso a paso de la implementación. Cada paso incluye un breve fragmento de código tomado directamente del ejemplo completo.

Instalar el Aspose.Words Cloud SDK for .NET

Primero, agrega el paquete NuGet a tu proyecto.

dotnet add package Aspose.Words-Cloud

También puedes descargar los binarios desde la página de descarga.

Configurar el cliente WordsApi

Cree un objeto Configuration con sus credenciales de cliente e instancie WordsApi.

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

La clase WordsApi está documentada en la referencia de API.

Cargar un DOCX que contiene un modelo 3D incrustado

Abra el archivo DOCX local y cárguelo en el almacenamiento de Aspose Cloud, sobrescribiendo cualquier archivo existente con el mismo nombre.

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

Asegúrese de que el DOCX ya incluya un modelo U3D o PRC; este es el Formato de modelo 3D que el SDK conserva.

Establecer opciones de guardado de PDF para preservar contenido 3D

Configure PdfSaveOptionsData para mantener los flujos 3D y usar la conformidad PDF/A‑1b.

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

Estas opciones forman parte del flujo de trabajo 3D a PDF que garantiza que el modelo interactivo permanezca intacto.

Convertir y descargar el PDF 3D interactivo

Invoca la solicitud de conversión y escribe el flujo resultante en un archivo 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);
}

Después de la conversión, puede eliminar opcionalmente el archivo temporal del almacenamiento en la nube.

Ejemplo de código completo: generación interactiva de PDF 3D en C#

El siguiente código demuestra todo el proceso de principio a 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)}'.");
        }
    }
}

Nota: Este ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de los archivos (input.docx, output.pdf, etc.) para que coincidan con sus ubicaciones reales, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Realizar conversión de PDF 3D con cURL y la API REST

La misma operación se puede ejecutar mediante llamadas cURL a los endpoints REST de Aspose.Words Cloud.

  1. Obtener un token de acceso (reemplaza los marcadores de posición con tus credenciales).
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. Cargar el DOCX que contiene el modelo 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. Solicitar conversión de PDF con preservación 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. Descargar el PDF resultante (el comando anterior ya lo guardó localmente, pero también puedes obtenerlo directamente).

Para obtener más detalles sobre los cuerpos de solicitud y los parámetros adicionales, consulte la documentación oficial de la API.

Consideraciones de despliegue para la generación de PDF 3D

Al integrar esta solución en un entorno de producción, tenga en cuenta los siguientes puntos:

  • Ubicación del servidor - La conversión se ejecuta en los servidores en la nube de Aspose, por lo que asegúrese de que su red permita tráfico HTTPS saliente a api.aspose.cloud.
  • Licenciamiento - Se requiere una licencia comercial para uso en producción. Puede comenzar con una licencia temporal desde la página de licencia temporal.
  • Escalabilidad - Dado que la API es sin estado, puede paralelizar cargas y conversiones en múltiples instancias de trabajador para manejar lotes de alto volumen, admitiendo la Automatización completa de 3D a PDF.

Conclusión

Generar PDF interactivo 3D en C# se vuelve sencillo con el Aspose.Words Cloud SDK for .NET. Siguiendo los pasos anteriores puedes incrustar modelos U3D o PRC, preservarlos durante la conversión a PDF y automatizar el flujo de trabajo ya sea con la biblioteca .NET o con llamadas REST directas. Recuerda obtener una licencia adecuada para producción y probar los PDF generados en un visor que admita 3D, como Adobe Acrobat. Con esta capacidad puedes ofrecer documentos más ricos y atractivos para escenarios de ingeniería, marketing y capacitación.

Preguntas frecuentes

¿Cómo generar un PDF 3D interactivo en C# usando Aspose.Words Cloud?
Use el SDK para cargar un DOCX que ya contiene un modelo U3D o PRC, configure PdfSaveOptionsData para mantener los flujos 3D y llame a ConvertDocumentAsync. El ejemplo de código completo en este artículo muestra la secuencia exacta.

¿Qué formatos de modelo 3D puedo incrustar para la conversión a PDF?
Aspose.Words Cloud admite los formatos U3D y PRC, que son los formatos estándar para contenido 3D interactivo en PDFs.

¿Es posible ejecutar la conversión sin escribir código C#?
Sí, el mismo proceso se puede realizar con comandos cURL contra la API REST de Aspose.Words Cloud, como se muestra en la sección cURL.

¿Dónde puedo encontrar información de precios y licencias?
Los detalles de la licencia comercial están disponibles en la página del producto, y puede obtener una licencia temporal para evaluación desde la página de licencia temporal.

Leer más