Preguntas frecuentes
Preguntas frecuentes
¿Cómo instalo Aspose.Slides FOSS?
Instale desde PyPI usando pip. Se requiere Python 3.10 o posterior.
pip install aspose-slides-fossVerifique la instalación:
import aspose.slides_foss as slides
with slides.Presentation() as prs:
print(f"Slides: {len(prs.slides)}")La dependencia lxml se instala automáticamente. No se requiere Microsoft Office ni otro tiempo de ejecución del sistema.
¿Por qué debo usar with slides.Presentation() as prs:?
La clase Presentation gestiona manejadores de archivos internos y recursos XML. Sin el administrador de contexto, esos recursos no se liberan cuando el objeto Presentation sale del alcance, lo que puede provocar fugas de recursos o bloqueos de archivos en Windows.
Siempre sigue este patrón:
with slides.Presentation("input.pptx") as prs:
# work here
prs.save("output.pptx", SaveFormat.PPTX)¿En qué formatos de archivo puedo guardar?
El enum SaveFormat define constantes para muchos formatos — PPTX, PDF, HTML, SVG, JPEG, PNG, y otros — para la compatibilidad de la API con la edición comercial. En tiempo de ejecución en esta edición FOSS, todas las llamadas save() ignoran el argumento de formato y siempre generan salida PPTX. Pasar SaveFormat.PDF compila y se ejecuta sin errores, pero produce un archivo .pptx, no un .pdf.
from aspose.slides_foss.export import SaveFormat
prs.save("output.pptx", SaveFormat.PPTX)La exportación a formatos que no sean PPTX no está disponible funcionalmente en esta edición. Use SaveFormat.PPTX para todas las operaciones de guardado.
¿Puedo abrir .ppt (old PowerPoint 97–2003) archivos?
No. Sólo los archivos .pptx (Office Open XML) son compatibles. El formato binario heredado .ppt no es manejado por esta biblioteca.
¿Cómo accedo a las diapositivas?
Las diapositivas son una lista indexada desde cero accesible a través de prs.slides:
first_slide = prs.slides[0]
slide_count = len(prs.slides)¿Cómo añado una segunda diapositiva?
Utilice prs.slides.add_empty_slide() con un diseño:
with slides.Presentation() as prs:
layout = prs.layout_slides[0]
prs.slides.add_empty_slide(layout)
slide2 = prs.slides[1]
prs.save("two-slides.pptx", SaveFormat.PPTX)¿Cómo establezco el color de fondo de la diapositiva?
La coloración del fondo de la diapositiva no está disponible en esta edición. La clase Slide no expone una propiedad background. Intentar slide.background generará AttributeError. Esta característica no está implementada en la versión actual.
¿Cómo utilizo NullableBool?
NullableBool es un enum de tres estados utilizado para propiedades de formato. Use NullableBool.TRUE (no el True de Python) para negrita, cursiva y propiedades similares:
from aspose.slides_foss import NullableBool, TextUnderlineType
fmt.font_bold = NullableBool.TRUE
fmt.font_italic = NullableBool.FALSE
# font_underline is TextUnderlineType, not NullableBool:
fmt.font_underline = TextUnderlineType.NOT_DEFINED # inherits from theme¿Por qué establecer el color del texto no tiene efecto?
También debe establecer fill_type = FillType.SOLID antes de asignar el color:
from aspose.slides_foss import FillType
from aspose.slides_foss.drawing import Color
fmt.fill_format.fill_type = FillType.SOLID
fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)¿Puedo usar gráficos o SmartArt?
No. Los gráficos, SmartArt, objetos OLE, animaciones, transiciones, hipervínculos, macros VBA y firmas digitales no están implementados en esta edición y generan NotImplementedError.
¿La biblioteca es compatible con Python 3.9?
No. Se requiere Python 3.10 o posterior.
¿Esta biblioteca es segura para subprocesos?
Cada objeto Presentation es independiente. Crear y usar instancias separadas de Presentation desde hilos diferentes es seguro siempre que no comparta un único objeto Presentation entre hilos sin un bloqueo externo.
¿Cómo incrusto una imagen?
Lea los bytes de la imagen y añádalos a prs.images, luego cree un PictureFrame:
with open("logo.png", "rb") as f:
image_data = f.read()
image = prs.images.add_image(image_data)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 200, 150, image)