Python içinde Sunumları Yükleme

Python içinde Sunumları Yükleme

Aspose.Slides FOSS for Python lets you open any .pptx dosyayı, içeriğini inceleyin ve ya PPTX olarak geri kaydedin ya da verileri ondan çıkarın. Bu kılavuz, bir dosyayı açmayı, slaytları yinelemeyi, şekil metnini okumayı ve kaydetmeyi geri döndürmeyi kapsar.

Adım Adım Kılavuz

Adım 1: Paketi Yükleyin

pip install aspose-slides-foss

Adım 2: Mevcut Bir Sunumu Aç

Dosya yolunu şuraya geçirin slides.Presentation(). Temizliği sağlamak için bağlam yöneticisini kullanın.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("input.pptx") as prs:
    print(f"Slide count: {len(prs.slides)}")
    prs.save("output.pptx", SaveFormat.PPTX)

Kaynak dosyadaki bilinmeyen XML bölümleri olduğu gibi korunur: kütüphane henüz anlamadığı içeriği asla kaldırmaz.


Adım 3: Slaytları İncele

Tüm slaytlar üzerinde döngü yapın ve indekslerini yazdırın:

import aspose.slides_foss as slides

with slides.Presentation("deck.pptx") as prs:
    for i, slide in enumerate(prs.slides):
        shape_count = len(slide.shapes)
        print(f"Slide {i}: {shape_count} shapes")

Adım 4: Şekil Metnini Oku

Şekiller üzerinde yineleme yapın ve bir … olan şekillerden metni okuyun. TextFrame:

import aspose.slides_foss as slides

with slides.Presentation("deck.pptx") as prs:
    for slide in prs.slides:
        for shape in slide.shapes:
            if hasattr(shape, "text_frame") and shape.text_frame is not None:
                text = shape.text_frame.text
                if text.strip():
                    print(f"  Shape text: {text!r}")

Adım 5: Belge Özelliklerini Oku

Temel belge özelliklerine şuradan erişin prs.document_properties:

import aspose.slides_foss as slides

with slides.Presentation("deck.pptx") as prs:
    props = prs.document_properties
    print(f"Title:   {props.title}")
    print(f"Author:  {props.author}")
    print(f"Subject: {props.subject}")

Adım 6: Çift Yönlü Kaydetme

Sunumu inceledikten veya değiştirdikten sonra, PPTX olarak geri kaydedin:

prs.save("output.pptx", SaveFormat.PPTX)

Farklı bir yola kaydetmek yeni bir dosya oluşturur. Aynı yola kaydetmek orijinali üzerine yazar.


Yaygın Sorunlar ve Çözümler

FileNotFoundError

Yolun … olduğundan emin olun .pptx dosyanın çalışma dizinine göre doğru olduğundan emin olun. Şunu kullanın pathlib.Path sağlam yol oluşturma için:

from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
    ...

Exception: File format is not supported

Kütüphane şunları destekler .pptx (Office Open XML) yalnızca. Eski .ppt (binary PowerPoint 97–2003) dosyaları desteklenmez.

Şekillerin text_frame özniteliği yok

Bazı şekiller (Connectors, PictureFrames, GroupShapes) bir … sahip değildir text_frame. Şununla koruyun hasattr(shape, "text_frame") and shape.text_frame is not None metne erişmeden önce.


Sık Sorulan Sorular

Yükleme, tüm orijinal içeriği korur mu?

Evet. Bilinmeyen XML bölümleri round‑trip kaydetmede olduğu gibi korunur. Kütüphane, henüz anlamadığı herhangi bir XML içeriğini kaldırmaz.

Şifre korumalı bir PPTX dosyasını yükleyebilir miyim?

Şifre korumalı (şifrelenmiş) sunumlar bu sürümde desteklenmez.

Gömülü görüntüleri çıkarabilir miyim?

Görüntüler koleksiyonuna erişin: prs.images şunu döndürür ImageCollection. Her görüntünün bir content_type ve bir bytes özelliği ham görüntü verisini okumak için.

Bellek içi akıştan (in‑memory stream) yükleme destekleniyor mu?

Doğrudan yükleme io.BytesIO Mevcut API’de ortaya çıkarılmamaktadır. İlk olarak baytları geçici bir dosyaya yazın:

import tempfile, os
import aspose.slides_foss as slides

with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
    tmp.write(pptx_bytes)
    tmp_path = tmp.name

try:
    with slides.Presentation(tmp_path) as prs:
        print(f"Slides: {len(prs.slides)}")
finally:
    os.unlink(tmp_path)

Ayrıca Bakınız

 Türkçe