Skip to content

Base64 in PDF & Datei umwandeln · PDF in Base64

Base64 in PDF umwandeln: rohes Base64, Data-URI oder die ganze JSON-Antwort einfügen. Erkennt den echten Dateityp, zeigt Vorschau und Download und meldet abgeschnittene PDFs. Auch PDF in Base64. Ohne Upload.

Kein Tracking Läuft im Browser Kostenlos
Dekodieren und Kodieren laufen vollständig in Ihrem Browser. Ihr Base64 und Ihre Dateien werden nie hochgeladen.

Gelesen als:

Welche Datei steckt in diesem Base64? Am Anfang erkennen

Jeder Dateityp beginnt mit festen „Magic Bytes“, also beginnt auch sein Base64 mit festen Zeichen. Die Präfixe unten werden aus echten Datei-Headern berechnet – mit derselben Engine, die dieses Tool verwendet.

Base64 beginnt mit Dateityp Magic Bytes (hex)
JVBERi0 PDF 25 50 44 46 2D
iVBORw0KGgoAAAANSUhEU PNG 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
/9j/ JPEG FF D8 FF
R0lGOD GIF 47 49 46 38
UEsDB ZIP / DOCX / XLSX / PPTX 50 4B 03 04
0M8R4KGxGu Office 97–2003 (DOC/XLS/PPT) D0 CF 11 E0 A1 B1 1A E1
H4sI Gzip 1F 8B 08
UklGR RIFF (WebP / WAV / AVI) 52 49 46 46
SUQz MP3 (ID3) 49 44 33
e1xydG RTF 7B 5C 72 74 66
Verhalten geprüft gegen RFC 4648, RFC 2045 und RFC 2397 sowie gegen die Dateisignaturen von PDF, PNG, ZIP und Office. — Go Tools Engineering · Sep 30, 2026

Geschrieben und geprüft von den Entwicklern, die die Kodierungs-Tools von Go Tools bauen. Jede Länge, jedes Präfix und jedes Beispiel auf dieser Seite stammt aus der Engine der Seite selbst und wird durch automatisierte Tests geprüft.

Base64 in PDF — kurze Antworten

Welche Datei ist Base64, das mit JVBERi0 beginnt?

JVBERi0 = PDF Ein PDF. Jedes PDF beginnt mit den Bytes `%PDF-`, und die werden in Base64 zu `JVBERi0`. `iVBORw0KGgo` ist ein PNG, `/9j/` ein JPEG und `UEsDB` ein ZIP – dazu gehören auch DOCX und XLSX.

Wie viel größer ist Base64 als die Originaldatei?

+33,3 % 4 Zeichen pro 3 Bytes, also rund 33,3 % mehr: Ein PDF mit 1 MB (1.048.576 Bytes) wird zu 1.398.104 Zeichen. Mit einem Zeilenumbruch alle 76 Zeichen, wie bei E-Mail-Anhängen, sind es 1.434.896 Zeichen, also 36,8 % mehr.

Was ist ein Base64-PDF?

Base64 schreibt beliebige Bytes mit nur 64 sicheren Textzeichen (A–Z, a–z, 0–9, +, /), dazu = als Padding. Aus je 3 Bytes werden 4 Zeichen. So kann eine Binärdatei wie ein PDF über Kanäle reisen, die nur Text transportieren – ein JSON-Feld, ein XML-Element, einen E-Mail-Text, eine Textspalte in der Datenbank. Base64 in PDF umzuwandeln kehrt das einfach um: Zeichen zurück in Bytes verwandeln und mit der Endung .pdf speichern. Das Problem: Echtes Base64 kommt selten sauber an. Es bringt ein data:-Präfix, JSON-Escapes, Zeilenumbrüche oder ein anderes Alphabet mit, und viele Konverter erzeugen dann stillschweigend eine Datei, die sich nicht öffnen lässt.

%PDF-1.4          → bytes 25 50 44 46 2D 31 2E 34
JVBERi0xLjQ=      → the same bytes in Base64
data:application/pdf;base64,JVBERi0xLjQ=   → data URI form

Funktionen

Einfügen, wie es kommt

Verarbeitet Data-URIs, JSON-Escapes \/ und \n, Anführungszeichen, MIME-Zeilenumbrüche, URL-sicheres - _, %2B %2F aus URLs, PEM-Header und fehlendes =-Padding – und zeigt jeden Schritt an.

Nimmt die ganze JSON-Antwort

Fügen Sie {"code":0,"data":{"file":"JVBERi0…"}} unverändert ein. Verwendet wird das längste Feld, das nach Base64 aussieht, und sein Pfad (data.file) wird angezeigt – Sie wissen also, welches Feld dekodiert wurde.

Echter Typ aus den Magic Bytes

PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 und mehr als 40 weitere Formate werden an ihren ersten Bytes erkannt. Der Download bekommt die richtige Endung, auch wenn das Präfix etwas anderes behauptet.

Erklärt, warum sich eine Datei nicht öffnet

Meldet PDFs ohne %%EOF (beim Kopieren oder durch eine Spaltenlängengrenze abgeschnitten), doppelt kodiertes Base64, als Base64 eingefügtes Hex, gzip-komprimierte Daten und verschlüsselte PDFs.

Vorschau direkt auf der Seite

PDFs öffnen sich im eingebauten Viewer des Browsers, Bilder und SVG werden angezeigt, Text und JSON als Text. HTML wird nie gerendert – nur der Quelltext –, weil es sonst auf dieser Seite ausgeführt würde.

PDF oder beliebige Datei in Base64

Legen Sie eine Datei bis 50 MB ab und erhalten Sie reines Base64 oder eine Data-URI, wahlweise URL-sicher oder mit Umbruch nach 76 Zeichen, samt exaktem Größenzuwachs.

Base64 in PDF mit Python, Java, JavaScript und mehr

Python

base64.b64decode

open('out.pdf', 'wb').write(base64.b64decode(s)). Für - und _ nehmen Sie urlsafe_b64decode; b64decode ignoriert Zeilenumbrüche, sofern Sie nicht validate=True übergeben.

Java

java.util.Base64

Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() lehnt Zeilenumbrüche ab; getUrlDecoder() ist für - und _ da.

Node.js

Buffer

fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer akzeptiert beide Alphabete und ignoriert Leerraum, überspringt aber auch jedes andere ungültige Zeichen stillschweigend, statt einen Fehler zu werfen – prüfen Sie also, ob das Ergebnis mit %PDF- beginnt.

JavaScript im Browser

atob / Uint8Array.fromBase64

Bauen Sie ein Uint8Array, bevor Sie den Blob erzeugen. Uint8Array.fromBase64() ist die neuere eingebaute Variante; prüfen Sie die Unterstützung in Ihren Zielbrowsern.

PHP

base64_decode

file_put_contents('out.pdf', base64_decode($s, true)). Übergeben Sie true für den strikten Modus, sonst werden ungültige Zeichen stillschweigend verworfen.

C#

Convert.FromBase64String

File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Leerraum ist erlaubt, - und _ nicht.

Kommandozeile

base64 -d / certutil

macOS und Linux: base64 -d < in.txt > out.pdf. Windows: certutil -decode in.txt out.pdf.

Beispiele: Base64 in PDF

Reines Base64 eines PDFs

JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · Version 1.4 · heruntergeladen als file.pdf

Beginnt mit JVBERi0, also %PDF-. Nichts zu bereinigen, daher wird es unverändert dekodiert.

Aus einer JSON-Antwort kopierter String

"data:application\/pdf;base64,JVBERi0xLjQK…"
Gelesen als: umschließende Anführungszeichen entfernt → JSON-Escapes aufgelöst → Data-URI-Präfix entfernt (application/pdf)

PHPs json_encode und manche Java-Serializer schreiben / als \/. In einem Decoder, der das nicht auflöst, ist der Backslash ein ungültiges Zeichen.

Komplette API-Antwort

{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}}
Gelesen als: Feld data.file aus dem JSON übernommen

Sie müssen den String nicht von Hand herausschneiden. Verwendet wird das längste Feld, das nach Base64 aussieht, und sein Pfad wird angezeigt.

Als PDF deklariert, tatsächlich ein PNG

data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Warnung: Die Data-URI gibt application/pdf an, die Bytes sind aber PNG. Gespeichert als file.png

Viele Konverter würden eine .pdf schreiben, die kein Reader öffnen kann. Die Magic Bytes haben Vorrang vor der Angabe.

Hex statt Base64 eingefügt

255044462d312e370a…
Warnung: Das sieht nach Hexadezimal aus – als Hex gelesen ist es ein PDF. [Als Hex dekodieren]

Hexziffern sind allesamt gültige Base64-Zeichen, daher schlägt die Base64-Dekodierung nicht fehl, sondern liefert stillschweigend Datenmüll. 25 50 44 46 ist %PDF.

So wandeln Sie Base64 in PDF um

  1. 1

    Base64 so einfügen, wie Sie es bekommen haben

    Rohes Base64, data:application/pdf;base64,…, ein aus JSON kopierter String mit \/-Escapes oder die komplette API-Antwort. Sehr lange Strings laden Sie besser über .txt-Datei öffnen, statt sie einzufügen.

  2. 2

    Prüfen, wie gelesen wurde

    Die Zeile unter dem Feld listet jeden Bereinigungsschritt auf – Präfix entfernt, Escapes aufgelöst, Padding ergänzt, Feld aus dem JSON übernommen. Stimmt etwas nicht, nennt die Fehlermeldung das genaue Zeichen und seine Position.

  3. 3

    Erkannten Typ und Warnungen ansehen

    Das Badge zeigt den Typ, der aus den Magic Bytes der Datei gelesen wurde. Ein gelber Hinweis erscheint, wenn es gar kein PDF ist, wenn die Data-URI einen falschen Typ angibt oder wenn das PDF vor %%EOF abbricht.

  4. 4

    Vorschau und Download

    PDFs öffnen sich im eingebauten Viewer des Browsers, Bilder und Text werden direkt angezeigt. Benennen Sie die Datei bei Bedarf um und klicken Sie auf Herunterladen. Für die Gegenrichtung wechseln Sie zu PDF / Datei → Base64 und legen eine Datei ab.

Warum sich ein Base64-PDF nicht öffnet: häufige Fehler

Das Data-URI-Präfix mitdekodieren

data:application/pdf;base64, gehört nicht zum Base64. Bleibt es drin, gibt es entweder einen Fehler (: und ; sind ungültig) oder – bei toleranten Decodern – beschädigte erste Bytes, sodass die Datei nicht mehr mit %PDF- beginnt.

✗ Falsch
base64.b64decode(value)  # value = 'data:application/pdf;base64,JVBERi0…'
✓ Richtig
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64)

Dekodierte Bytes als Text schreiben

Ein PDF ist binär. Wer die dekodierten Bytes in einen String umwandelt und diesen mit einer Textkodierung schreibt, ersetzt ungültige Bytes und verändert Zeilenenden – damit ist die Querverweistabelle (xref) kaputt.

✗ Falsch
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString())
✓ Richtig
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64'))

Strikter Decoder bekommt umbrochenes Base64

Javas Base64.getDecoder() lehnt Zeilenumbrüche ab. Base64 aus E-Mails oder von base64 unter Linux ist nach 76 Zeichen umbrochen. Nutzen Sie den MIME-Decoder oder entfernen Sie vorher die Leerzeichen und Umbrüche.

✗ Falsch
byte[] pdf = Base64.getDecoder().decode(wrapped);  // IllegalArgumentException
✓ Richtig
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);

URL-sicheres Base64 im Standard-Decoder

JWTs und viele URL-Parameter verwenden - und _ statt + und / und lassen das =-Padding weg. Ein Standard-Decoder lehnt das ab oder dekodiert falsche Bytes.

✗ Falsch
base64.b64decode(token_part)  # contains - and _
✓ Richtig
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))

Das Ergebnis von atob() als Text verwenden

Im Browser liefert atob einen Binärstring mit einem Zeichen pro Byte. Übergibt man ihn an new Blob([str]), wird er als UTF-8 kodiert, und jedes Byte über 127 wird zu zwei Bytes. Kopieren Sie ihn vorher in ein Uint8Array.

✗ Falsch
new Blob([atob(b64)], { type: 'application/pdf' })
✓ Richtig
const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' })

Abgeschnittener String

Ein PDF endet mit %%EOF. Wurde das Base64 durch eine VARCHAR-Spalte, ein Limit für Logzeilen oder unvollständiges Kopieren gekürzt, lässt sich die Datei zwar dekodieren, aber Reader zeigen einen Fehler oder fehlende Seiten. Vergleichen Sie die Länge mit dem, was der Absender erzeugt hat.

✗ Falsch
SELECT LENGTH(pdf_b64) FROM docs;  -- 65535: suspiciously round
✓ Richtig
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT;  -- or store the bytes in a BLOB

Wann Sie Base64 in PDF umwandeln müssen

Eine API liefert das PDF als Base64
Rechnungs-, E-Signatur- und Versandlabel-APIs geben Dokumente oft in JSON zurück. Fügen Sie die Antwort hier ein und prüfen Sie das Dokument, bevor Sie den Code schreiben, der es speichert.
Ein PDF debuggen, das sich nicht öffnet
Ist die gespeicherte Datei leer oder beschädigt, fügen Sie dasselbe Base64 hier ein. Das Tool sagt Ihnen, ob es abgeschnitten, doppelt kodiert, gar kein PDF oder in Ordnung ist – dann liegt der Fehler darin, wie Ihr Code die Datei schreibt.
Eine Datei in einem JSON-Request senden
Viele Upload-Endpunkte erwarten {"filename": …, "content": "<base64>"}. Kodieren Sie die Datei hier, um einen Test-Request für Postman oder cURL zu bauen.
Eine Datei in HTML, CSS oder E-Mail einbetten
Erzeugen Sie eine Data-URI für einen eingebetteten PDF-Link, eine Schrift oder ein kleines Bild, oder Base64 mit 76 Spalten für einen MIME-Teil einer E-Mail.
Anhänge aus Logs und Datenbanken lesen
Dateien, die in einer Textspalte liegen oder in ein Log geschrieben wurden, lassen sich direkt wieder herausholen – und ein fehlendes %%EOF verrät, dass die Spalte oder die Logzeile zu kurz war.

Wie Base64-Dateikodierung funktioniert

Warum Base64 33 % größer ist
Jedes Zeichen trägt 6 Bit, also brauchen 3 Bytes (24 Bit) 4 Zeichen. Mit Padding ist die Länge 4 × ⌈n ÷ 3⌉: 100 KB (102.400 Bytes) werden zu 136.536 Zeichen. Der MIME-Umbruch fügt nach je 76 Zeichen ein CRLF ein, daher wird 1 MB zu 1.434.896 statt 1.398.104 Zeichen.
Standard- und URL-sicheres Alphabet
RFC 4648 definiert zwei Alphabete, die sich nur in den letzten beiden Zeichen unterscheiden: + / (Standard, Abschnitt 4) und - _ (URL- und dateinamensicher, Abschnitt 5). URL-sicheres Base64 lässt das =-Padding meist weg. Stehen beide in einem String, wurde er bearbeitet oder zusammengesetzt.
Padding und unmögliche Längen
Das Padding = macht die Länge zu einem Vielfachen von 4. Fehlt es, lässt sich ein Rest von 2 oder 3 wiederherstellen; ein Rest von 1 ist bei gültigem Base64 unmöglich – ein Zeichen ist verloren gegangen oder hinzugekommen. Ein = mitten im String bedeutet meist, dass zwei Strings aneinandergehängt wurden.
Die Magic Bytes bestimmen den Typ
Eine Datei gibt ihr Format in den ersten Bytes an: %PDF- für PDF, 89 50 4E 47 für PNG, 50 4B 03 04 für ZIP-basierte Formate wie DOCX und XLSX. Diese Bytes legen die ersten Base64-Zeichen fest, sodass sich der Typ schon vor dem Dekodieren ablesen lässt – siehe Tabelle im Tool.
Wie ein abgeschnittenes PDF erkannt wird
Ein PDF endet mit %%EOF. Taucht das nicht in den letzten 1.024 Bytes auf, wurde die Datei mit ziemlicher Sicherheit gekürzt. Der Header darf bis zu 1.024 Bytes nach dem Anfang stehen; die meisten Reader öffnen solche Dateien trotzdem, daher wird das gemeldet, aber nicht abgelehnt.

Best Practices für Dateien als Base64

MIME-Typ und Dateinamen mitschicken
Base64 enthält weder Namen noch Typ. Legen Sie beides daneben ({"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) oder verwenden Sie eine Data-URI, damit der Empfänger nicht raten muss.
Magic Bytes auf Empfängerseite prüfen
Prüfen Sie vor dem Speichern, ob die dekodierten Bytes mit %PDF- beginnen. Das fängt falsche Felder, doppelte Kodierung und als Base64 zurückgegebene Fehlerseiten mit einer einzigen Codezeile ab.
Für große Dateien Multipart oder eine URL bevorzugen
Base64 macht die Datei um ein Drittel größer, und der ganze String muss im Speicher liegen. Ab ein paar Megabyte sind multipart/form-data oder eine vorsignierte Download-URL für beide Seiten leichter.
In der Datenbank Bytes speichern, nicht Base64
Eine BLOB/bytea-Spalte ist ein Drittel kleiner und kann nicht stillschweigend gekürzt werden wie ein VARCHAR. Kodieren Sie erst an der API-Grenze in Base64.

Base64 in PDF — häufige Fragen

Wie wandle ich Base64 in PDF um?
Fügen Sie das Base64 in das Feld auf dieser Seite ein. Es wird sofort dekodiert, das PDF öffnet sich in der Vorschau, und Herunterladen speichert es als .pdf. Das Präfix data:application/pdf;base64,, Anführungszeichen, Zeilenumbrüche und JSON-Escapes dürfen drinbleiben – sie werden automatisch entfernt.
Warum lässt sich mein dekodiertes PDF nicht öffnen?
Die üblichen Ursachen: Das data:-Präfix wurde als Teil der Daten dekodiert; die Bytes wurden als Text statt binär geschrieben; der String wurde abgeschnitten (kein %%EOF am Ende); das Base64 wurde doppelt kodiert; oder es ist gar kein PDF – etwa ein PNG oder eine JSON-Fehlermeldung. Fügen Sie denselben String hier ein: Jeder dieser Fälle zeigt eine eigene Warnung.
Wird meine Datei auf einen Server hochgeladen?
Nein. Dekodieren, Typerkennung, Vorschau und Kodieren laufen per JavaScript in Ihrem Browser. Nichts, was Sie einfügen oder ablegen, wird irgendwohin gesendet – das Tool eignet sich also auch für Rechnungen, Verträge und Ausweisdokumente.
Woran erkenne ich, welcher Dateityp im Base64 steckt?
Am Anfang: JVBERi0 ist PDF, iVBORw0KGgo ist PNG, /9j/ ist JPEG, R0lGOD ist GIF, UEsDB ist ZIP (und damit auch DOCX, XLSX, PPTX), H4sI ist gzip. Das Tool liest die Magic Bytes nach dem Dekodieren, zeigt den Typ an und speichert die Datei mit der passenden Endung.
Kann ich Base64 in Word, Excel, ein Bild oder ein ZIP umwandeln?
Ja. Jeder Dateityp lässt sich dekodieren; die Endung ergibt sich aus dem Inhalt. DOCX, XLSX und PPTX werden im ZIP-Container erkannt, ältere DOC-/XLS-Dateien als Office 97–2003. Bilder, Audio und Video bekommen eine Vorschau; andere Typen werden direkt heruntergeladen.
Wie wandle ich ein PDF in Base64 um?
Öffnen Sie den Tab PDF / Datei → Base64 und legen Sie das PDF ab. Wählen Sie reines Base64 oder eine Data-URI, optional URL-sicher oder mit Umbruch nach 76 Zeichen, und kopieren Sie das Ergebnis oder laden Sie es als .txt-Datei herunter.
Was ist der Unterschied zwischen Base64 und einer Data-URI?
Eine Data-URI ist Base64 mit einem Kopf, der den Typ angibt: data:application/pdf;base64,JVBERi0…. Browser können sie direkt als Link oder src öffnen. APIs wollen meist nur den Base64-Teil nach dem Komma.
Warum steht da „Das ist kein PDF“?
Weil die dekodierten Bytes nicht mit %PDF- beginnen. Angezeigt wird, was die Bytes tatsächlich sind. Häufige Überraschungen sind ein PNG- oder JPEG-Scan, ein DOCX, ein ZIP mit mehreren PDFs oder eine JSON- oder HTML-Fehlermeldung, die anstelle des Dokuments in Base64 kodiert wurde.
Was bedeutet „kein %%EOF am Ende“?
Jedes PDF endet mit der Markierung %%EOF. Fehlt sie, wurde das Base64 mit ziemlicher Sicherheit gekürzt: nur teilweise kopiert, von einer Datenbankspalte wie MySQL TEXT (65.535 Bytes) abgeschnitten oder durch ein Limit für Logzeilen verkürzt. Besorgen Sie den vollständigen String erneut; fehlende Daten kann auch das Dekodieren nicht zurückholen.
Was bedeutet „ein zweites Mal dekodiert“?
Die dekodierten Daten waren selbst wieder Base64-Text. Das passiert, wenn ein Wert einmal von Ihrem Code und dann noch einmal von einem Framework oder HTTP-Client kodiert wird. Das Tool dekodiert die innere Schicht nur, wenn dabei eine erkennbare Datei herauskommt, sodass gewöhnlicher Text nie versehentlich entpackt wird.
Gibt es eine Größenbeschränkung?
Eingefügter Text darf bis zu 100 MB groß sein, Dateien zum Kodieren bis zu 50 MB. Bei sehr langem Base64 ist .txt-Datei öffnen schneller als Einfügen. Die Textvorschau zeigt die ersten 100.000 Zeichen; der Download ist immer vollständig.
Warum ist die PDF-Vorschau auf meinem Handy leer?
Mobile Browser gehen unterschiedlich mit eingebetteten PDFs um; manche zeigen nur die erste Seite oder gar nichts. Nutzen Sie In neuem Tab öffnen oder Herunterladen – die Datei selbst ist davon nicht betroffen.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →