So dekodieren Sie Base64 in eine PowerPoint-Datei
- Fügen Sie das Base64 in Base64 oder Data-URI ein. Ein Präfix
data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64,ist kein Problem, und .txt-Datei öffnen verarbeitet lange, als Text gespeicherte Zeichenketten. - Folientext listet jede Folie unter ihrer Nummer auf (Folie 1, Folie 2 usw.), den Text jedes Absatzes in einer eigenen Zeile. Eine Folie ohne Text zeigt
…. - Die Liste der Einträge darunter zeigt alle Teile der Datei mit Ansehen und Speichern.
- Drücken Sie Datei herunterladen, um die .pptx zu speichern.
Der Text wird mit dem XML-Parser des Browsers aus dem Folien-XML gezogen. Nichts in der Präsentation wird ausgeführt, und die Seite sendet außer dem Seitenaufrufzähler von Cloudflare keine Netzwerkanfragen.
Was der Folientext umfasst
Jede Folie ist eine eigene XML-Datei in der .pptx, und die Vorschau übernimmt den Text jedes darin enthaltenen Absatzes: Titel, Textplatzhalter, Textfelder, Formen, gruppierte Formen und Tabellenzellen. Als ausgeblendet markierte Folien sind dabei. Bis zu 200 Folien werden gelesen.
Was an anderer Stelle gespeichert ist, erscheint nicht:
| Inhalt | Wo er liegt | Wie Sie herankommen |
|---|---|---|
| Sprechernotizen | ppt/notesSlides/notesSlideN.xml | Ansehen zeigt das XML |
| SmartArt-Text | ppt/diagrams/dataN.xml | Ansehen zeigt das XML |
| Diagramme | ppt/charts/chartN.xml, mit den Zahlen in einer eingebetteten Arbeitsmappe | Speichern Sie die eingebettete .xlsx aus ppt/embeddings/ |
| Bilder und Video | ppt/media/ | Ansehen zeigt eine Vorschau, Speichern lädt sie herunter |
| Kommentare | ppt/comments/ | Ansehen zeigt das XML |
Folien werden nach der Nummer in ihrem Dateinamen aufgelistet, slide1.xml, slide2.xml usw. Das entspricht normalerweise der Reihenfolge im Foliensatz, eine per Skript umsortierte Präsentation kann aber alte Dateinummern behalten; sehen Sie die Nummerierung also als Orientierung.
Prüfen, ob es eine PPTX ist
Jede Office-Open-XML-Datei ist ein ZIP-Archiv, ein PowerPoint-Foliensatz beginnt in Base64 also genau wie ein Word-Dokument oder eine Excel-Arbeitsmappe mit UEsDB. Um sie zu unterscheiden, sucht das Tool unter den Einträgen nach ppt/-Ordnern. Ist der Inhalt ein anderes Format, sagt ein Hinweis das und bietet die richtige Endung an:
| Erkannt | Hinweis |
|---|---|
| DOCX oder XLSX | „Erkannt: DOCX, erwartet: PPTX.“ mit Als .docx herunterladen |
PDF (JVBERi0) | Ein als PDF exportierter Foliensatz, mit Als .pdf herunterladen |
DOC/XLS/MSG (OLE), 0M8R4KGxGuE | Eine alte .ppt aus PowerPoint 97–2003 oder eine passwortgeschützte .pptx. Das Tool kann beides nicht unterscheiden; tragen Sie für Ersteres ppt in Endung ein und behalten Sie für Letzteres pptx |
Ein Foliensatz mit Makros (.pptm) enthält ppt/vbaProject.bin. Sein Text wird normal angezeigt, PowerPoint öffnet ihn aber nur mit der Endung .pptm; tragen Sie diese also vor dem Herunterladen ein.
Den Folientext in Python lesen
Die Standardbibliothek reicht, um den Text pro Folie aufzulisten, in derselben Reihenfolge wie die Vorschau:
import base64, io, re, zipfile
import xml.etree.ElementTree as ET
A = "{http://schemas.openxmlformats.org/drawingml/2006/main}"
with open("deck.b64") as f:
pptx = base64.b64decode(f.read())
with zipfile.ZipFile(io.BytesIO(pptx)) as z:
slides = [n for n in z.namelist() if re.fullmatch(r"ppt/slides/slide\d+\.xml", n)]
slides.sort(key=lambda n: int(re.search(r"\d+", n).group()))
for name in slides:
root = ET.fromstring(z.read(name))
lines = ["".join(t.text or "" for t in p.iter(A + "t")) for p in root.iter(A + "p")]
print(name, [s for s in lines if s.strip()])
Für den Beispiel-Foliensatz auf dieser Seite gibt es ppt/slides/slide1.xml ['Hello from Base64', 'A two-slide deck built in your browser.'] aus und dasselbe für Folie 2. Die tatsächliche Folienreihenfolge steht in ppt/presentation.xml im Element <p:sldIdLst>, falls Sie sie genau brauchen. Mehr unter Base64 in Python; um die Archivseite geht es unter Base64 in ZIP.
Häufige Fragen
Wie mache ich aus Base64 eine PowerPoint-Datei?
Fügen Sie die Zeichenkette oben ein und drücken Sie Datei herunterladen. Die Präsentation wird als decoded.pptx gespeichert; ändern Sie vorher Dateiname, wenn Sie einen anderen Namen möchten.
Werden Sprechernotizen angezeigt?
Nicht im Folientext. Notizen liegen in ppt/notesSlides/notesSlide1.xml usw.; drücken Sie in der Liste der Einträge neben einer davon auf Ansehen, um ihr XML zu lesen, in dem der Text in <a:t>-Elementen steht.
Kann ich die Folien als Bilder sehen?
Nein. Die Seite liest nur den Text der Folien und zeichnet sie nicht. Im Foliensatz verwendete Bilder lassen sich einzeln aus ppt/media/ in der Liste der Einträge ansehen und speichern.