File: //proc/self/root/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()