Die Hausaufgabe ist in Jupyter fertig, und das Abgabeportal will ein PDF. Sie wählen „Als PDF herunterladen“ oder führen jupyter nbconvert --to pdf aus und bekommen eine Fehlermeldung: xelatex nicht gefunden, oder pandoc fehlt. nbconvert erzeugt seine PDFs über LaTeX und braucht deshalb eine vollständige TeX-Distribution, bevor überhaupt etwas herauskommt.
Look Scanned kann .ipynb-Dateien jetzt direkt öffnen. Wählen Sie Ihr Notebook auf der Seite Jupyter Notebook in gescanntes PDF aus, und es wird direkt in Ihrem Browser gesetzt: die Markdown-Zellen, der Code und die Ausgaben, die mit dem Notebook gespeichert sind. Prüfen Sie die Seiten in der Vorschau und laden Sie ein PDF herunter. Es ist nichts zu installieren, und das Notebook wird nicht hochgeladen.
Eines vorweg: Look Scanned lässt Dokumente gescannt aussehen, und genau so sieht auch das PDF aus. Das passt, wenn ein Notebook als ausgedruckte und eingescannte Fassung abgegeben werden muss oder einfach wie Papier wirken soll. Sie können Drehung, Unschärfe und Rauschen auf null stellen, um eine sauberere Seite zu bekommen. Jede Seite bleibt aber ein Bild, der Text im PDF lässt sich also weder markieren noch durchsuchen.
So wird aus einer .ipynb-Datei ein gescanntes PDF
- Führen Sie das Notebook in Jupyter, JupyterLab, VS Code oder Google Colab aus und speichern Sie es, damit die Ausgaben in der Datei landen. In Colab nutzen Sie dafür Datei → Herunterladen → .ipynb herunterladen.
- Öffnen Sie Jupyter Notebook in gescanntes PDF und wählen Sie die
.ipynb-Datei aus. - Gehen Sie die Vorschau Seite für Seite durch. Prüfen Sie Code, Tabellen und Diagramme und stellen Sie Papierformat und Ränder ein.
- Passen Sie den Scan-Effekt an. Halten Sie Unschärfe und Rauschen niedrig, damit kleiner Code lesbar bleibt. Standardmäßig sind die Seiten in Graustufen; wählen Sie „Farbig“, wenn Ihre Diagramme ihre Farben behalten sollen.
- Erzeugen Sie das gescannte PDF und laden Sie es herunter.
Lieber Bilder? Sie können jede Seite stattdessen als JPG oder PNG exportieren. Unser Leitfaden zu PDF, JPG und PNG erklärt, wann sich welches Format eignet. Mit Pro verarbeitet der Massenscan mehrere .ipynb-Dateien auf einmal.
Was auf der Seite erscheint
- Markdown-Zellen: Überschriften, Listen, Tabellen, Links und Bilder, auch Bilder, die direkt in eine Zelle eingefügt wurden.
- Code-Zellen, mit Syntaxhervorhebung für die Sprache des Notebooks und ihren
In [1]:-Prompts. Lange Zeilen werden umbrochen, statt über den Seitenrand zu laufen. - Gespeicherte Ausgaben unter ihren
Out[1]:-Prompts: ausgegebener Text, Rückgabewerte, HTML-Tabellen wie pandas-DataFrames und Bilder, sodass Plots aus matplotlib oder seaborn erhalten bleiben. - Fehler, mit dem vollständigen Traceback.
- Terminalausgaben so, wie ein Terminal sie zeigt. Farbcodes werden entfernt, und ein Fortschrittsbalken wie tqdm behält nur seinen letzten Stand statt jeder einzelnen Aktualisierung.
Was Sie vorher wissen sollten
- Zellen werden nicht ausgeführt. Look Scanned liest, was in der Datei gespeichert ist; einen Kernel gibt es nicht. Eine Zelle, die Sie nie ausgeführt haben, oder ein Notebook, das mit gelöschten Ausgaben gespeichert wurde, zeigt nur Code ohne etwas darunter. Führen Sie alle Zellen aus und speichern Sie, bevor Sie die Datei auswählen.
- Formeln bleiben TeX-Quelltext. Formeln, die in Markdown-Zellen als
$…$oder$$…$$stehen, erscheinen genau so, wie sie getippt wurden, etwa$\alpha + \beta$, und nicht als gesetzte Mathematik. - Interaktive Ausgaben werden nicht dargestellt. Plotly, Bokeh und ipywidgets zeichnen mit JavaScript, und das wird nicht ausgeführt. Sie sehen die statische Fassung, die das Notebook mitgespeichert hat, oft nur eine kurze Textzeile oder gar nichts. Plots, die als Bild gespeichert werden, etwa aus matplotlib, sind kein Problem.
- Notebooks müssen nbformat 4 sein. Das schreiben aktuelle Versionen von Jupyter, JupyterLab, VS Code und Colab. Ein sehr altes Notebook im Format nbformat 3 wird abgelehnt; öffnen Sie es in einem aktuellen Jupyter und speichern Sie es erneut, um es umzuwandeln.
- Breite Tabellen werden gestaucht. Tabellen werden an die Seitenbreite angepasst, ein DataFrame mit vielen Spalten bekommt also schmale, umbrochene Spalten.
- Behalten Sie Ihr Notebook. Das PDF besteht wie ein echter Scan aus Seitenbildern. Zum Ausführen und Bearbeiten des Codes brauchen Sie weiterhin die
.ipynb-Datei.
Das Notebook wird auf Ihrem eigenen Gerät gelesen und gesetzt und nicht auf einen Server hochgeladen. Die einzige Ausnahme ist eine Markdown-Zelle, die ein Bild über seine Webadresse einbindet: Dieses Bild lädt Ihr Browser von der Website, auf der es liegt, genau wie Jupyter es tun würde.
Wann nbconvert die bessere Wahl ist
Brauchen Sie markierbaren Text, gesetzte Formeln oder ein PDF, das genau dem Export von Jupyter entspricht, ist nbconvert weiterhin das richtige Werkzeug. Installieren Sie eine TeX-Distribution und führen Sie jupyter nbconvert --to pdf aus, oder nutzen Sie --to webpdf: Das druckt über einen Headless-Chromium-Browser und kommt ganz ohne LaTeX aus. In beiden Fällen können Sie dem fertigen PDF anschließend in Look Scanned den Scan-Effekt hinzufügen.
Liegt Ihre Ausarbeitung als Markdown- oder LaTeX-Datei vor statt als Notebook? Auch die lassen sich öffnen: siehe Markdown und HTML in gescanntes PDF und LaTeX in gescanntes PDF.
Haben Sie ein Notebook, das als PDF abgegeben werden muss? Probieren Sie es jetzt aus.