Operaciones de presentación de bajo código en .NET
Visión general
El espacio de nombres Aspose.Slides.LowCode proporciona clases auxiliares estáticas para operaciones comunes de presentaciones. Estas ayudas envuelven flujos de trabajo del modelo de objetos frecuentemente usados en métodos concentrados, de modo que puedes convertir o combinar archivos, procesar elementos de la presentación, recopilar formas y eliminar contenido no utilizado con menos código.
Los asistentes de bajo código son más útiles cuando la operación se aplica a un archivo o presentación completa y el flujo de trabajo predeterminado coincide con tus requisitos. Utiliza el modelo de objetos completo de Aspose.Slides cuando necesites un control granular sobre diapositivas individuales, maestros, diseños, formas, configuraciones de exportación o relaciones entre los elementos de la presentación.
La tabla siguiente resume los asistentes disponibles:
| Asistente | Uso |
|---|---|
| Convert | Convertir una presentación a otro formato mediante una llamada directa de archivo a archivo. |
| Merger | Combinar archivos de presentación completos del mismo formato. |
| ForEach | Ejecutar una acción para cada diapositiva, forma, párrafo o porción de texto. |
| Collect | Recuperar formas de toda la presentación para procesamiento o análisis repetido. |
| Compress | Eliminar maestros/diseños no utilizados, reducir datos de fuentes incrustadas y comprimir imágenes. |
Convertir una presentación
Utiliza Convert.AutoByExtension cuando la extensión del archivo de salida es suficiente para seleccionar el formato de exportación. El método abre la presentación origen, determina el formato requerido a partir de la ruta de salida y escribe el resultado.
using Aspose.Slides.LowCode;
Convert.AutoByExtension("input.pptx", "output.pdf");
La clase Convert también ofrece métodos dedicados para salida PDF, SVG, JPEG, PNG y TIFF. Utiliza el modelo de objetos completo cuando necesites inspeccionar o modificar la presentación antes de la exportación o configurar una opción de exportación que no esté expuesta por el asistente seleccionado. Consulta Convertir presentación para flujos de trabajo y opciones específicas de formato.
Combinar presentaciones
Utiliza Merger.Process para combinar archivos de presentación completos con una sola llamada. Las presentaciones de entrada deben tener el mismo formato de archivo.
using Aspose.Slides.LowCode;
var inputFiles = new[] { "part-1.pptx", "part-2.pptx" };
Merger.Process(inputFiles, "merged.pptx");
El asistente es apropiado cuando todas las diapositivas deben añadirse a un único resultado sin seleccionarlas o reasignarlas individualmente. Utiliza el modelo de objetos completo cuando necesites combinar diapositivas seleccionadas, aplicar un maestro o diseño de destino, preservar secciones explícitamente o reconciliar tamaños de diapositiva diferentes. Consulta Combinar presentaciones para esos escenarios.
Iterar a través de los elementos de la presentación
La clase ForEach invoca una devolución de llamada para cada tipo solicitado de elemento de la presentación. Evita bucles de colección anidados y resulta cómoda para inspecciones a nivel de presentación o cambios de formato.
El siguiente ejemplo usa ForEach.Slide, ForEach.Shape, ForEach.Paragraph, y ForEach.Portion para inspeccionar los elementos correspondientes:
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
ForEach.Slide(presentation, (slide, index) =>
{
Console.WriteLine($"Slide {index}: {slide.Shapes.Count} shapes");
});
ForEach.Shape(presentation, (shape, slide, index) =>
{
Console.WriteLine($"Shape {index} on {slide.GetType().Name}: {shape.Name}");
});
ForEach.Paragraph(presentation, (paragraph, slide, index) =>
{
Console.WriteLine($"Paragraph {index} on {slide.GetType().Name}: {paragraph.Text}");
});
ForEach.Portion(presentation, (portion, paragraph, slide, index) =>
{
Console.WriteLine($"Portion {index} on {slide.GetType().Name}: {portion.Text}");
});
Por defecto, el recorrido de formas y texto a nivel de presentación incluye diapositivas normales, maestras y de diseño. Las sobrecargas con un parámetro includeNotes también pueden procesar diapositivas de notas. Utiliza bucles de colección directos cuando el orden de recorrido, la salida temprana, el filtrado antes de la invocación de la devolución de llamada o el control detallado padre‑hijo son importantes.
Recopilar formas
Utiliza Collect.Shapes cuando necesites una colección de todas las formas en una presentación en lugar de una devolución de llamada para cada forma. Esto es útil cuando el mismo conjunto será filtrado, contado o procesado más de una vez.
using System;
using Aspose.Slides;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
var shapes = Collect.Shapes(presentation);
foreach (var shape in shapes)
{
Console.WriteLine($"{shape.Name}: {shape.GetType().Name}");
}
Usa ForEach.Shape en su lugar cuando cada forma pueda manejarse inmediatamente y no necesites conservar el resultado recopilado.
Comprimir contenido de la presentación
La clase Compress puede eliminar elementos estructurales no utilizados y reducir los datos de fuentes incrustadas:
- Compress.RemoveUnusedLayoutSlides elimina las diapositivas de diseño que ninguna diapositiva normal referencia.
- Compress.RemoveUnusedMasterSlides elimina las diapositivas maestras que ya no se usan.
- Compress.CompressEmbeddedFonts elimina los caracteres no utilizados de las fuentes incrustadas.
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
Compress.RemoveUnusedLayoutSlides(presentation);
Compress.RemoveUnusedMasterSlides(presentation);
Compress.CompressEmbeddedFonts(presentation);
presentation.Save("compressed.pptx", SaveFormat.Pptx);
Elimina los diseños no utilizados antes que los maestros no utilizados, de modo que un maestro que quede sin referencia tras la limpieza de diseños también pueda eliminarse. Guarda la presentación optimizada en un archivo nuevo si puedes necesitar más adelante los maestros, diseños o los datos completos de fuentes incrustadas originales. Para más detalles, consulta Slide Master y Embedded Font.
Comprimir toda la presentación
Aspose.Slides for .NET 26.11 incorpora Compress.CompressPresentation. Combina la eliminación de diapositivas de diseño/maestro no utilizadas, la reducción de fuentes incrustadas a los caracteres usados y la compresión de imágenes a 150 DPI. Utiliza las operaciones individuales anteriores cuando necesites controlar qué cambios se aplican.
Instala Aspose.Slides for .NET 26.11 o posterior y proporciona input.pptx. Guarda en un archivo separado: los diseños eliminados, los caracteres de fuente y los píxeles recortados de las imágenes pueden ser necesarios para edición posterior.
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
Compress.CompressPresentation(presentation);
presentation.Save("compressed.pptx", SaveFormat.Pptx);
Comprimir imágenes a una resolución elegida
Utiliza Compress.CompressImages para procesar imágenes elegibles sin eliminar también diseños o reducir fuentes. Este ejemplo usa 96 DPI; selecciona otro valor de PicturesCompression para tus necesidades de salida.
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;
using var presentation = new Presentation("input.pptx");
Compress.CompressImages(presentation, PicturesCompression.Dpi96);
presentation.Save("compressed-images.pptx", SaveFormat.Pptx);
Ambos asistentes utilizan el siguiente alcance de procesamiento de imágenes:
| Contenido | Tratamiento |
|---|---|
| Imágenes raster y rellenos de forma con imágenes en diapositivas normales, maestras y de diseño, incluidas formas agrupadas | Elegibles para compresión. |
| Imágenes ya en la resolución solicitada o inferior | No se aumentan. Las áreas recortadas aún pueden eliminarse. |
| Áreas recortadas de imágenes | Los píxeles ocultos se eliminan permanentemente y los desplazamientos de recorte se restablecen. |
| Fondos de diapositiva y rellenos de celdas de tabla | No procesados por estos asistentes. |
| Elementos internos de gráficos/SmartArt, GIF y formatos vectoriales como SVG, EMF y WMF | Fuera del alcance documentado de compresión de imágenes. |
En la versión 26.11, PicturesCompression.DocumentResolution evita el muestreo descendente basado en la resolución de una imagen no recortada, pero no conserva los píxeles recortados. Una imagen recortada aún puede volver a escribirse con sus áreas ocultas eliminadas. Ninguno de los asistentes expone una opción de conservar recorte. Para control individual, consulta el ejemplo de compresión por imagen.
Compara la apariencia y el tamaño del archivo resultante antes de sustituir el original. El ahorro depende de las imágenes fuente, su tamaño de visualización y el contenido no utilizado; la compresión no garantiza un archivo más pequeño. Consulta Embedded Fonts para conocer las implicaciones de la reducción de fuentes.
Preguntas frecuentes
¿Cuándo debo usar la API de bajo código en lugar del modelo de objetos completo?
Utiliza los asistentes de bajo código cuando una operación estándar se aplica a un archivo o presentación completa y no requiere control detallado sobre elementos individuales. Utiliza el modelo de objetos completo cuando necesites seleccionar diapositivas específicas, controlar relaciones de maestros y diseños, inspeccionar el estado intermedio o configurar un comportamiento que el asistente no exponga.
¿Puede Merger combinar presentaciones en diferentes formatos de archivo?
No. Merger.Process requiere que las presentaciones de entrada tengan el mismo formato. Convierte los archivos de entrada a un formato común primero, por ejemplo con Convert.AutoByExtension, y luego combina los archivos convertidos.
¿ForEach procesa diapositivas maestras, de diseño y de notas?
ForEach.Slide itera a través de diapositivas normales de la presentación. ForEach.Shape, ForEach.Paragraph y ForEach.Portion a nivel de presentación incluyen diapositivas normales, maestras y de diseño por defecto. Usa sus sobrecargas con includeNotes establecidas en true para incluir diapositivas de notas.
¿Cuál es la diferencia entre ForEach.Shape y Collect.Shapes?
Utiliza ForEach.Shape para procesar cada forma inmediatamente mediante una devolución de llamada. Utiliza Collect.Shapes cuando necesites un resultado enumerable que pueda conservarse, filtrarse, contarse o recorrerse varias veces.
¿Compress siempre hace que el archivo de la presentación sea más pequeño?
No necesariamente. El ahorro depende de los diseños/maestros no utilizados, las fuentes incrustadas con caracteres no usados y las imágenes que se benefician de la compresión. Los asistentes Compress pueden dejar el tamaño sin cambios o producir un archivo mayor para algunas entradas. Compara tanto el tamaño como la calidad renderizada, y conserva el original.
¿Los cambios realizados por ForEach o Compress se guardan automáticamente?
No. Estos asistentes operan sobre el objeto Presentation cargado en memoria. Después de cambiar elementos en una devolución de llamada de ForEach o ejecutar Compress, llama a Presentation.Save para escribir el resultado.