Eliminar diapositivas de presentaciones en C++

Si una diapositiva (o su contenido) se vuelve redundante, puede eliminarla. Aspose.Slides proporciona la clase Presentation que encapsula ISlideCollection, que es un repositorio de todas las diapositivas de una presentación. Usando punteros (referencia o índice) para un objeto ISlide conocido, puede especificar la diapositiva que desea eliminar.

Eliminar una diapositiva por referencia

  1. Cree una instancia de la clase Presentation.
  2. Obtenga una referencia de la diapositiva que desea eliminar mediante su ID o índice.
  3. Elimine la diapositiva referenciada de la presentación.
  4. Guarde la presentación modificada.

Este código C++ muestra cómo eliminar una diapositiva mediante su referencia:

	// La ruta al directorio de documentos
	const String templatePath = L"../templates/AddSlides.pptx";
	const String outPath = L"../out/RemoveSlidesByReference.pptx";

	// Crea una instancia de un objeto Presentation que representa un archivo de presentación
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Accede a una diapositiva mediante su índice en la colección de diapositivas
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Elimina una diapositiva mediante su referencia
	pres->get_Slides()->Remove(slide);

	// Guarda la presentación modificada
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Eliminar una diapositiva por índice

  1. Cree una instancia de la clase Presentation.
  2. Elimine la diapositiva de la presentación mediante su posición de índice.
  3. Guarde la presentación modificada.

Este código C++ muestra cómo eliminar una diapositiva mediante su índice:

	// La ruta al directorio de documentos
	const String templatePath = L"../templates/AddSlides.pptx";
	const String outPath = L"../out/RemoveSlidesByID.pptx";

	// Instancia un objeto Presentation que representa un archivo de presentación
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Elimina una diapositiva mediante su índice
	pres->get_Slides()->RemoveAt(0);

	// Guarda la presentación modificada
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Eliminar diapositivas de diseño no usadas

Aspose.Slides proporciona el método RemoveUnusedLayoutSlides() (de la clase Compress) para permitirle eliminar diapositivas de diseño no deseadas y no usadas. Este código C++ muestra cómo eliminar una diapositiva de diseño de una presentación PowerPoint:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

LowCode::Compress::RemoveUnusedLayoutSlides(pres);

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

Eliminar diapositivas maestras no usadas

Aspose.Slides proporciona el método RemoveUnusedMasterSlides() (de la clase Compress) para permitirle eliminar diapositivas maestras no deseadas y no usadas. Este código C++ muestra cómo eliminar una diapositiva maestra de una presentación PowerPoint:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

LowCode::Compress::RemoveUnusedMasterSlides(pres);

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

Preguntas frecuentes

¿Qué ocurre con los índices de las diapositivas después de eliminar una diapositiva?

Después de la eliminación, la collection se vuelve a indexar: cada diapositiva posterior se desplaza una posición a la izquierda, por lo que los números de índice anteriores quedan desactualizados. Si necesita una referencia estable, use el ID persistente de cada diapositiva en lugar de su índice.

¿El ID de una diapositiva es diferente de su índice, y cambia cuando se eliminan diapositivas adyacentes?

Sí. El índice es la posición de la diapositiva y cambiará cuando se añadan o eliminen diapositivas. El ID de la diapositiva es un identificador persistente y no cambia cuando se eliminan otras diapositivas.

¿Cómo afecta la eliminación de una diapositiva a las secciones de diapositivas?

Si la diapositiva pertenecía a una sección, esa sección simplemente contendrá una diapositiva menos. La estructura de la sección permanece; si una sección queda vacía, puede remove or reorganize sections según sea necesario.

¿Qué ocurre con las notas y los comentarios adjuntos a una diapositiva cuando se elimina?

Notes y comments están vinculados a esa diapositiva específica y se eliminan junto con ella. El contenido de otras diapositivas no se ve afectado.

¿En qué se diferencia la eliminación de diapositivas de la limpieza de diseños/maestros no usados?

Eliminar quita diapositivas normales específicas del conjunto. La limpieza de diseños/maestros no usados elimina diapositivas de diseño o maestra que no son referenciadas, reduciendo el tamaño del archivo sin cambiar el contenido de las diapositivas restantes. Estas acciones son complementarias: normalmente se elimina primero y luego se limpia.