HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //workspace/embed_illustrations_pptx.py
#!/usr/bin/env python3
"""
Bindet Illustrationen in die passenden PPTX-Präsentationen ein.
"""
import os
from pptx import Presentation
from pptx.util import Inches, Pt

# Mapping: Bild → PPTX-Datei
ILLUSTRATION_MAPPING = {
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/VK_KI-Schreiben_Illustration.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/02_Vorklasse/Präsentationen/Einführung_Vorklasse_Deutsch_2026.pptx",
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/02_Vorklasse/Präsentationen/Arbeitsphasen_Vorklasse_KI-Schreiben.pptx"
    ],
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/JG11_Social-Media_Illustration.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/03_Jahrgang_11/Präsentationen/Einführung_Jahrgang11_Deutsch_2026.pptx",
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/03_Jahrgang_11/Präsentationen/Arbeitsphasen_Jahrgang11_Social-Media.pptx"
    ],
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/JG11_Podcast-Medien_Illustration.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/03_Jahrgang_11/Präsentationen/Arbeitsphasen_Jahrgang11_Social-Media.pptx"
    ],
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/JG12_Framing_Perspektiven.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/04_Jahrgang_12/Präsentationen/Einführung_Medienkompetenz_JG12.pptx",
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/04_Jahrgang_12/Präsentationen/Arbeitsphasen_Medienkompetenz_JG12.pptx"
    ],
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/JG13_Data_Bias_Algorithmen.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/05_Jahrgang_13/Präsentationen/Einführung_KI_Medienkultur_JG13.pptx",
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/05_Jahrgang_13/Präsentationen/Arbeitsphasen_KI_Kritik_Kreativitaet_JG13.pptx"
    ],
    "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/06_Bilder/JG13_Mensch_vs_KI_Kreativitaet.png": [
        "/mnt/onedrive_write/FOS_Deutsch_Lehrplanvergleich_2026/05_Jahrgang_13/Präsentationen/Arbeitsphasen_KI_Kritik_Kreativitaet_JG13.pptx"
    ]
}

def add_illustration_to_pptx(image_path, pptx_path):
    """Fügt ein Bild als neue Folie in eine PPTX-Präsentation ein."""
    try:
        prs = Presentation(pptx_path)
        
        # Leere Folie hinzufügen
        blank_layout = prs.slide_layouts[6]  # Blank layout
        slide = prs.slides.add_slide(blank_layout)
        
        # Bild zentriert einfügen
        left = Inches(1.5)
        top = Inches(1.5)
        width = Inches(7)
        
        slide.shapes.add_picture(image_path, left, top, width=width)
        
        # Präsentation speichern
        prs.save(pptx_path)
        
        return True, f"✓ {os.path.basename(pptx_path)}"
    except Exception as e:
        return False, f"✗ {os.path.basename(pptx_path)}: {str(e)}"

def main():
    results = []
    
    for image_path, pptx_paths in ILLUSTRATION_MAPPING.items():
        if not os.path.exists(image_path):
            results.append(f"✗ Bild nicht gefunden: {os.path.basename(image_path)}")
            continue
            
        for pptx_path in pptx_paths:
            if not os.path.exists(pptx_path):
                results.append(f"✗ PPTX nicht gefunden: {os.path.basename(pptx_path)}")
                continue
            
            success, message = add_illustration_to_pptx(image_path, pptx_path)
            results.append(message)
    
    print("\n".join(results))

if __name__ == "__main__":
    main()