Python'da Sunumları Yükleme

Python'da Sunumları Yükleme

Aspose.Slides FOSS for Python, herhangi bir .pptx dosyasını açmanıza, içeriğini incelemenize ve ya PPTX olarak geri kaydetmenize ya da verileri çıkarmanıza olanak tanır. Bu kılavuz, bir dosyanın açılmasını, slaytların yinelemesini, şekil metninin okunmasını ve kaydetmenin geri dönüşünü 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 slides.Presentation()‘e geçirin. 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 anlayamadığı içeriği asla kaldırmaz.


Adım 3: Slaytları İncele

Tüm slaytları yineleyin 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 TextFrame içeren şekillerden metni okuyun:

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

prs.document_properties üzerinden temel belge özelliklerine erişin:

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: Gidiş-Dönüş Kaydetme

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

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

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


Yaygın Sorunlar ve Çözümler

FileNotFoundError

Çalışma dizinine göre .pptx dosyasının yolunun doğru olduğundan emin olun. Sağlam yol oluşturma için pathlib.Path kullanın:

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 yalnızca .pptx (Office Open XML) destekler. Eski .ppt (ikili PowerPoint 97–2003) dosyaları desteklenmez.

Şekillerin text_frame özelliği yok

Bazı şekiller (Connectors, PictureFrames, GroupShapes) text_frame‘e sahip değildir. Metne erişmeden önce hasattr(shape, "text_frame") and shape.text_frame is not None ile koruyun.


Sıkça Sorulan Sorular

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

Evet. Bilinmeyen XML bölümleri, tur/geri dönüşüm kaydetme sırasında olduğu gibi korunur. Kütüphane, henüz anlamadığı herhangi bir XML içeriğini kaldırmayacaktır.

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

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

Gömülü resimleri çıkarabilir miyim?

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

Bellek içi akıştan yükleme destekleniyor mu?

io.BytesIO‘den doğrudan yükleme mevcut API’de sunulmamaktadır. Önce 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