mygems

CSV in PDF umwandeln

Eine CSV hat keine Seiten, ein PDF besteht nur aus Seiten – deshalb fallen Spalten über den Rand. So entscheidest du vor dem Umwandeln, was hineinkommt.

Von uos ·

Der Grund, warum das lästig ist: Eine CSV hat keine Seiten. Sie ist ein unbegrenztes Raster, ein PDF dagegen ein Stapel fester Rechtecke. Jede Konvertierung muss entscheiden, wo geschnitten wird, und jedes Tool, das das schlecht macht, entscheidet gleich: Es schneidet, wo das Papier zu Ende ist, und lässt die übrigen Spalten am rechten Rand abfallen.

Die nützliche Frage lautet also nicht „Wie konvertiere ich?“, denn fast alles erzeugt irgendeine Datei, sondern welche Spalten und welche Zeilen tatsächlich ins PDF kommen. Beantworte das zuerst, dann ist die Konvertierung trivial.

Vor dem Konvertieren: die Datei zuschneiden

Ein PDF mit 40.000 Zeilen ist kein Dokument, sondern ein Fehler mit Dateigröße. Niemand öffnet Seite 612. Braucht der Empfänger jede Zeile, schick ihm die CSV.

Ein PDF ist das richtige Format, wenn die Ausgabe gelesen und nicht weiterverarbeitet werden soll. Dann sollte sie:

  • Gefiltert sein. Die Zeilen, die für diesen Empfänger relevant sind, nicht der ganze Export.
  • Schmal sein. Sechs bis zehn Spalten passen lesbar auf eine A4-Seite im Querformat. Fünfzehn nicht, bei keiner Schriftgröße, die ein Mensch noch liest.
  • Oft zusammengefasst sein. Ein GROUP BY, das aus 40.000 Zeilen 30 macht, ist meist das Dokument, das eigentlich gewünscht war.

Das vor der Konvertierung zu erledigen, macht den ganzen Unterschied zwischen einem brauchbaren Bericht und 600 Seiten abgeschnittenem Raster.

Ausrichtung und Spaltenbreite

Zwei Einstellungen entscheiden, ob das Ergebnis lesbar ist, und beide sind standardmäßig falsch.

Querformat, immer, außer die Datei hat weniger als fünf Spalten. Im Hochformat passen auf A4 etwa sechs schmale Spalten, im Querformat zehn.

Auf Seitenbreite skalieren, nicht auf einen Prozentwert. Jede Tabellenkalkulation hat das, und fast niemand findet es: In Excel steht es unter Seitenlayout → An Format anpassen → Breite: 1 Seite. Ohne diese Einstellung werden die Spalten ab der elften auf eigenen Seiten hinter der letzten Zeile gedruckt, und so entsteht aus einer 12-seitigen Tabelle ein 40-seitiges PDF.

Zwei Dinge solltest du danach einmal einstellen:

  • Kopfzeile auf jeder Seite wiederholen. Excel nennt das Drucktitel → Wiederholungszeilen oben. Eine Tabelle, deren Kopf nur auf Seite eins steht, ist ab Seite zwei unlesbar.
  • Gitternetzlinien einschalten. Beim Drucken sind sie standardmäßig aus, und eine breite Tabelle ohne sie lässt sich quer kaum lesen.

Die Wege, nach Situation

Aus einer Tabellenkalkulation, am Desktop

Öffne die CSV, übernimm die obigen Einstellungen und wähle dann Drucken → Als PDF speichern. Das ist das optisch beste Ergebnis aller hier genannten Methoden und die einzige, bei der du ohne Code einen Titel und Seitenzahlen anbringen kannst.

Achte aber auf den Import: Excel wandelt beim Öffnen einer CSV alles um, was wie ein Datum aussieht, und ein PDF hält diesen Fehler dauerhaft fest. Eine Spalte mit Bestellnummern, die als 43831 ankommt, war in der Datei 2020-01-01. Importiere als Text, wenn die Daten IDs, führende Nullen oder lange Zahlen enthalten.

Von der Kommandozeile

Für eine schlichte, korrekte Tabelle ohne Gestaltungsentscheidungen:

csvlook data.csv | enscript -B -f Courier8 -o - | ps2pdf - out.pdf

Praktischer, wenn du das Layout steuern willst, ist der Weg über HTML. Jedes System hat einen Headless-Browser, und Browser paginieren Tabellen hervorragend:

csvtomd data.csv > table.md
pandoc table.md -o out.pdf

Der Vorteil der HTML-Route: Mit @page { size: A4 landscape } und thead { display: table-header-group } im Stylesheet bekommst du genau die zwei Dinge, die Tabellenkalkulationen in Dialogen verstecken: Ausrichtung und wiederholte Kopfzeilen.

Vom Smartphone

Hier kommt die Konvertierung tatsächlich vor: Die Datei liegt in deiner E-Mail, die Person, die sie braucht, möchte etwas, das sich ohne Tabellen-App auf dem Bildschirm lesen lässt, und du bist nicht in der Nähe eines Laptops.

Das Wichtigste ist dasselbe wie überall: vor dem Export filtern und Spalten reduzieren. Ein PDF in Handygröße mit fünf Spalten und vierzig Zeilen ist ein gutes Ergebnis. Ein PDF der ganzen Datei in Handygröße nicht.

CSV File Viewer - Smart CSViPhone & iPad · Android

Konvertiert direkt in PDF, wobei Spalten und Gestaltung des Exports bewusst gewählt statt übernommen werden. Zuvor grenzt der visuelle Filtereditor oder eine SQL-Abfrage die Datei auf die druckenswerten Zeilen ein, und genau dieser Schritt entscheidet, ob das PDF lesbar ist.

Was es kann

Wann ein PDF die falsche Antwort ist

Drei Fälle, die die meisten Anfragen abdecken.

„Damit sie es ohne Excel öffnen können.“ Das können sie schon: Eine CSV öffnet sich in Notepad, TextEdit, jedem Browser, Google Sheets, Numbers und auf jedem Smartphone. Wenn die Sorge ist, dass es schlecht aussieht, hilft meist eine schmalere Datei, kein anderes Format.

„Damit sie es nicht ändern können.“ Ein PDF ist in keinem sinnvollen Sinn schreibgeschützt. Es lässt sich mühelos bearbeiten und mühelos auslesen. Geht es um Integrität, ist die Antwort eine Signatur oder eine Prüfsumme, kein Dateiformat.

„Damit sie die Daten nutzen können.“ Ein PDF ist der denkbar schlechteste Container für Tabellendaten, und sie wieder herauszuholen ist eine Aufgabe, an der eine ganze Branche hängt. Wenn der Empfänger mit den Zahlen irgendetwas machen wird, schick die CSV und dazu eine PDF-Zusammenfassung.

Die echten Anwendungsfälle für PDF: etwas, das gedruckt werden soll, etwas, das mit fester Seitenaufteilung archiviert wird, etwas, das einem formellen Vorgang beigelegt wird, oder etwas, dessen Layout das Weiterleiten überstehen muss.

So sieht es aus wie ein Bericht

Vier Dinge, geordnet danach, wie stark sie das Ergebnis verbessern:

  1. Zahlen rechtsbündig, Text linksbündig. Nichts verbessert die Lesbarkeit so stark, und es ist eine einzige Einstellung.
  2. Nachkommastellen festlegen. Eine Spalte, die 1.5 und 1.4999999 mischt, wirkt schlampig und ist meist ein Gleitkomma-Artefakt, keine echte Genauigkeit.
  3. Kopf- und Fußzeile hinzufügen. Titel, das Datum, auf das sich die Daten beziehen (nicht das Druckdatum), und Seitenzahlen.
  4. Sagen, was die Datei ist. Eine Zeile oben: die Quelle, der angewandte Filter, die Zeilenanzahl. Sechs Monate später ist das der Unterschied zwischen einem Dokument und einem Rätsel.
CSV Editor - Smart CSViPhone & iPad

Wenn die Datei vor dem Versand korrigiert werden muss, etwa eine gerundete Spalte, eine berechnete Summe oder gelöschte Zeilen, erledigen das die Formelspalten direkt auf dem Smartphone. Das Ergebnis wird in der CSV gespeichert, sodass die Zahlen in jedem Druckprogramm dieselben sind.

Was es kann

Diagramme statt Tabellen

Frag dich, bevor du etwas konvertierst: Will der Empfänger die Zeilen oder die Form? Ein Trend über zwölf Monate ist eine Linie, und eine Tabelle mit zwölf Monaten ist eine schlechtere Linie, die länger zum Lesen braucht.

Die stärkste Version dieses Dokuments ist meist ein Diagramm auf der ersten Seite und dahinter die zusammengefasste Tabelle. Das ist in jedem Tool, das beides kann, eine Arbeit von zwei Minuten und deutlich nützlicher als jedes der beiden allein.

Fragen

Wie konvertiere ich eine CSV-Datei in ein PDF?
Öffne sie in einer Tabellenkalkulation, stelle Querformat und „auf Seitenbreite skalieren: 1 Seite“ ein, schalte wiederholte Kopfzeilen und Gitternetzlinien ein und drucke dann als PDF. Auf der Kommandozeile konvertierst du in HTML oder Markdown und lässt einen Browser oder pandoc paginieren. Auf dem Smartphone erledigt eine App mit direktem PDF-Export das in wenigen Fingertipps. In allen drei Fällen entscheidet das vorherige Filtern der Datei darüber, ob das Ergebnis lesbar ist.
Warum sind meine Spalten im PDF abgeschnitten?
Weil die Druckskalierung standardmäßig 100 % beträgt: Alles jenseits der Seitenbreite wird auf separaten Seiten hinter der letzten Zeile gedruckt, statt verkleinert zu werden. Stelle „auf Seitenbreite skalieren: 1 Seite“ ein; in Excel findest du es unter Seitenlayout → An Format anpassen. Ist die Tabelle in dieser Größe immer noch nicht lesbar, hat die Datei zu viele Spalten für eine Seite und muss reduziert statt verkleinert werden.
Wie wiederhole ich die Kopfzeile auf jeder Seite des PDFs?
In Excel unter Seitenlayout → Drucktitel → „Wiederholungszeilen oben“, eingestellt auf die Kopfzeile. In Google Sheets unter Drucken → Kopf- und Fußzeilen → Fixierte Zeilen wiederholen. Bei einer HTML-basierten Konvertierung erreichst du dasselbe, indem du die Kopfzeile in ein `thead` setzt und `display: table-header-group` festlegst.
Soll ich ein PDF oder die CSV schicken?
Schick die CSV, wenn der Empfänger mit den Zahlen irgendetwas machen wird, denn aus einem PDF lassen sich Tabellendaten am schwersten zurückholen. Schick ein PDF, wenn die Ausgabe gelesen, gedruckt oder mit fester Seitenaufteilung archiviert werden soll. Ein PDF macht Daten nicht unveränderbar, ist also nicht die Antwort, wenn es um Integrität geht.
Wie viele Zeilen sollten in einen CSV-zu-PDF-Export?
So wenige, wie zur Beantwortung der Frage nötig sind. Ein PDF mit Zehntausenden Zeilen ist kein Dokument, das jemand über die erste Seite hinaus liest. Filtere auf die relevanten Zeilen oder fasse mit GROUP BY zusammen. Dreißig Zeilen Zusammenfassung und ein Diagramm sind meist das, was eigentlich gewünscht war, und die ganze Datei ist als Original-CSV der bessere Anhang.
Warum haben sich meine Datumswerte und IDs im PDF verändert?
Die Tabellenkalkulation hat sie beim Import umgewandelt, bevor es das PDF überhaupt gab. Bestellnummern werden zu Seriendaten, lange Zahlen zu wissenschaftlicher Notation, und führende Nullen verschwinden. Importiere die CSV als Text, statt die Spalten automatisch erkennen zu lassen, oder konvertiere mit einem Tool, das Werte nicht neu interpretiert. Das PDF hält jeden Fehler, der vorher passiert ist, dauerhaft fest.

uos — Ich entwickle Smart CSV Viewer, der PDFs exportiert. Die Frage, was in so ein PDF gehört und was nicht, kommt deshalb regelmäßig auf.