Skip to content

Convertir Base64 en PDF et fichier · PDF en Base64

Base64 en PDF en ligne : collez du Base64 brut, une data URI ou toute la réponse JSON. L'outil détecte le vrai type de fichier, l'affiche, le télécharge et signale les PDF tronqués. PDF en Base64 aussi. Rien n'est envoyé.

Sans pistage Fonctionne dans le navigateur Gratuit
Le décodage et l'encodage s'exécutent entièrement dans votre navigateur. Votre Base64 et vos fichiers ne sont jamais envoyés.

Interprété ainsi :

Quel fichier est ce Base64 ? Regardez son début

Chaque type de fichier commence par des octets « magiques » fixes, donc son Base64 commence par des caractères fixes. Les préfixes ci-dessous sont calculés à partir de vrais en-têtes de fichiers par le moteur même de cet outil.

Le Base64 commence par Type de fichier Octets magiques (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
Comportement vérifié par rapport aux RFC 4648, RFC 2045 et RFC 2397, ainsi qu'aux signatures de fichiers PDF, PNG, ZIP et Office. — Go Tools Engineering · 30 sept. 2026

Rédigé et relu par les ingénieurs qui développent les outils d'encodage de Go Tools. Chaque longueur, préfixe et exemple de cette page est produit par le moteur de la page elle-même et vérifié par des tests automatisés.

Base64 en PDF — réponses rapides

Quel fichier est un Base64 qui commence par JVBERi0 ?

JVBERi0 = PDF Un PDF. Tout PDF commence par les octets `%PDF-`, qui donnent `JVBERi0` en Base64. `iVBORw0KGgo` est un PNG, `/9j/` un JPEG et `UEsDB` un ZIP, ce qui inclut DOCX et XLSX.

De combien le Base64 est-il plus gros que le fichier d'origine ?

+33.3% 4 caractères pour 3 octets, soit environ 33.3% de plus : un PDF de 1 Mo (1 048 576 octets) devient 1 398 104 caractères. Avec un retour à la ligne tous les 76 caractères, comme dans les pièces jointes d'e-mail, on arrive à 1 434 896 caractères, soit 36.8% de plus.

Qu'est-ce qu'un PDF en Base64 ?

Le Base64 représente des octets quelconques avec seulement 64 caractères texte sûrs (A–Z, a–z, 0–9, +, /), plus = comme padding. Chaque groupe de 3 octets devient 4 caractères. Un fichier binaire comme un PDF peut ainsi passer par des canaux qui ne transportent que du texte : un champ JSON, un élément XML, le corps d'un e-mail, une colonne texte en base de données. Convertir du Base64 en PDF, c'est simplement l'opération inverse : retransformer les caractères en octets et les enregistrer avec l'extension .pdf. Le problème, c'est que le Base64 réel arrive rarement propre : il traîne un préfixe data:, des échappements JSON, des retours à la ligne ou un autre alphabet, et beaucoup de convertisseurs produisent sans rien dire un fichier qui ne s'ouvre pas.

%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

Fonctionnalités

Collez-le tel quel

Gère les data URI, les échappements JSON \/ et \n, les guillemets, les retours à la ligne MIME, les - _ URL-safe, les %2B %2F venus d'une URL, les en-têtes PEM et le padding = manquant, et affiche chaque étape appliquée.

Accepte la réponse JSON entière

Collez {"code":0,"data":{"file":"JVBERi0…"}} tel quel. Le champ le plus long qui ressemble à du Base64 est utilisé et son chemin (data.file) est affiché : vous savez quel champ a été décodé.

Le vrai type, lu dans les octets magiques

PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 et plus de 40 autres formats sont reconnus à leurs premiers octets. Le téléchargement reçoit la bonne extension, même quand le préfixe dit autre chose.

Explique pourquoi un fichier ne s'ouvre pas

Signale un PDF sans %%EOF (coupé lors du copier-coller ou par la taille limite d'une colonne), un Base64 encodé deux fois, de l'hexadécimal collé comme du Base64, des données compressées en gzip et les PDF chiffrés.

Aperçu intégré

Les PDF s'ouvrent dans la visionneuse intégrée du navigateur, les images et le SVG s'affichent, le texte et le JSON sont montrés en texte. Le HTML n'est jamais rendu, seul son code source apparaît, car il s'exécuterait sur cette page.

PDF ou n'importe quel fichier en Base64

Déposez un fichier jusqu'à 50 MB et obtenez du Base64 brut ou une data URI, en option URL-safe ou coupé à 76 caractères, avec le surcoût de taille exact.

Base64 en PDF en Python, Java, JavaScript et plus

Python

base64.b64decode

open('out.pdf', 'wb').write(base64.b64decode(s)). Utilisez urlsafe_b64decode pour - et _ ; b64decode ignore les retours à la ligne sauf si vous passez validate=True.

Java

java.util.Base64

Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() rejette les retours à la ligne ; getUrlDecoder() sert pour - et _.

Node.js

Buffer

fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer accepte les deux alphabets et ignore les espaces, mais il saute aussi en silence tout autre caractère illégal au lieu de lever une erreur : vérifiez que le résultat commence par %PDF-.

JavaScript (navigateur)

atob / Uint8Array.fromBase64

Construisez un Uint8Array avant de créer le Blob. Uint8Array.fromBase64() est la fonction native plus récente ; vérifiez sa prise en charge dans les navigateurs ciblés.

PHP

base64_decode

file_put_contents('out.pdf', base64_decode($s, true)). Passez true pour le mode strict, sinon les caractères invalides sont supprimés sans avertissement.

C#

Convert.FromBase64String

File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Les espaces sont acceptés ; - et _ ne le sont pas.

Ligne de commande

base64 -d / certutil

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

Exemples de conversion Base64 en PDF

Base64 brut d'un PDF

JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · version 1.4 · téléchargé sous file.pdf

Commence par JVBERi0, c'est-à-dire %PDF-. Rien à nettoyer, le décodage se fait tel quel.

Chaîne copiée depuis une réponse JSON

"data:application\/pdf;base64,JVBERi0xLjQK…"
Interprété ainsi : guillemets retirés → échappements JSON annulés → préfixe data URI retiré (application/pdf)

Le json_encode de PHP et certains sérialiseurs Java écrivent / sous la forme \/. Collé dans un décodeur qui ne l'annule pas, l'antislash devient un caractère illégal.

Réponse d'API complète

{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}}
Interprété ainsi : champ data.file extrait du JSON

Inutile de découper la chaîne à la main. Le champ le plus long qui ressemble à du Base64 est utilisé et son chemin est affiché.

Étiqueté PDF, en réalité un PNG

data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Attention : la data URI annonce application/pdf, mais les octets sont un PNG. Enregistré sous file.png

Beaucoup de convertisseurs écriraient un .pdf qu'aucun lecteur ne peut ouvrir. Les octets magiques l'emportent sur l'étiquette.

De l'hexadécimal collé à la place du Base64

255044462d312e370a…
Attention : cela ressemble à de l'hexadécimal ; lu en hex, c'est un PDF. [Décoder en hex]

Les chiffres hexadécimaux sont tous des caractères Base64 valides, donc le décodage Base64 n'échoue pas : il produit silencieusement des données inutilisables. 25 50 44 46 correspond à %PDF.

Comment convertir du Base64 en PDF

  1. 1

    Collez le Base64 tel que vous l'avez reçu

    Base64 brut, data:application/pdf;base64,…, chaîne copiée depuis du JSON avec des échappements \/, ou réponse d'API complète. Pour les chaînes très longues, utilisez Ouvrir un fichier .txt plutôt que de coller.

  2. 2

    Vérifiez comment il a été interprété

    La ligne sous la zone de saisie liste chaque étape de nettoyage : préfixe retiré, échappements annulés, padding ajouté, champ extrait du JSON. En cas de problème, l'erreur indique le caractère fautif et sa position exacte.

  3. 3

    Regardez le type détecté et les avertissements

    Le badge affiche le type lu dans les octets magiques du fichier. Une note jaune apparaît si ce n'est pas vraiment un PDF, si la data URI ment sur le type, ou si le PDF est coupé avant %%EOF.

  4. 4

    Prévisualisez et téléchargez

    Les PDF s'ouvrent dans la visionneuse du navigateur, les images et le texte s'affichent directement. Renommez le fichier si besoin puis cliquez sur Télécharger. Pour le sens inverse, passez à PDF / fichier → Base64 et déposez un fichier.

Pourquoi un PDF Base64 ne s'ouvre pas : erreurs fréquentes

Décoder le préfixe data URI avec les données

data:application/pdf;base64, ne fait pas partie du Base64. Le laisser provoque soit une erreur (: et ; sont illégaux), soit, avec un décodeur permissif, des premiers octets corrompus : le fichier ne commence plus par %PDF-.

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

Écrire les octets décodés comme du texte

Un PDF est binaire. Convertir les octets décodés en chaîne puis écrire cette chaîne avec un encodage texte remplace les octets invalides et modifie les fins de ligne, ce qui casse la table de références croisées.

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

Décodeur strict face à du Base64 coupé en lignes

Le Base64.getDecoder() de Java rejette les retours à la ligne. Le Base64 issu d'un e-mail ou de la commande base64 sous Linux est coupé à 76 caractères. Utilisez le décodeur MIME, ou supprimez d'abord les espaces.

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

Base64 URL-safe passé à un décodeur standard

Les JWT et beaucoup de paramètres d'URL utilisent - et _ au lieu de + et /, et omettent le padding =. Un décodeur standard les rejette ou décode de mauvais octets.

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

Traiter le résultat de atob() comme du texte

Dans le navigateur, atob renvoie une chaîne binaire, un caractère par octet. La passer à new Blob([str]) l'encode en UTF-8, et chaque octet supérieur à 127 devient deux octets. Copiez-la d'abord dans un Uint8Array.

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

Chaîne tronquée

Un PDF se termine par %%EOF. Si le Base64 a été coupé par une colonne VARCHAR, une limite de longueur de ligne de log ou une copie incomplète, le fichier se décode mais les lecteurs affichent une erreur ou des pages manquantes. Comparez la longueur avec celle produite par l'émetteur.

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

Quand convertir du Base64 en PDF

Une API renvoie le PDF en Base64
Les API de facturation, de signature électronique ou d'impression d'étiquettes renvoient souvent les documents dans du JSON. Collez la réponse pour vérifier le document avant d'écrire le code qui l'enregistre.
Déboguer un PDF qui ne s'ouvre pas
Quand le fichier enregistré est vide ou corrompu, collez ici le même Base64. L'outil vous dit s'il est tronqué, encodé deux fois, pas du tout un PDF, ou parfaitement valide, auquel cas le bug est dans la façon dont votre code écrit le fichier.
Envoyer un fichier dans une requête JSON
Beaucoup d'endpoints d'upload attendent {"filename": …, "content": "<base64>"}. Encodez le fichier ici pour construire une requête de test dans Postman ou cURL.
Intégrer un fichier dans du HTML, du CSS ou un e-mail
Générez une data URI pour un lien PDF inline, une police ou une petite image, ou du Base64 coupé à 76 colonnes pour une partie MIME d'e-mail.
Récupérer des pièces jointes dans des logs ou une base
Les fichiers stockés dans une colonne texte ou écrits dans un log peuvent être extraits directement, et un %%EOF absent vous indique que la colonne ou la ligne de log était trop courte.

Comment fonctionne l'encodage Base64 d'un fichier

Pourquoi le Base64 pèse 33% de plus
Chaque caractère porte 6 bits, donc 3 octets (24 bits) demandent 4 caractères. Avec padding, la longueur vaut 4 × ⌈n ÷ 3⌉ : 100 Ko (102 400 octets) donnent 136 536 caractères. Le découpage MIME ajoute un CRLF tous les 76 caractères, si bien que 1 Mo donne 1 434 896 caractères au lieu de 1 398 104.
Alphabet standard et alphabet URL-safe
La RFC 4648 définit deux alphabets qui ne diffèrent que par leurs deux derniers caractères : + / (standard, section 4) et - _ (sûr pour les URL et les noms de fichiers, section 5). Le Base64 URL-safe omet généralement le padding =. Une chaîne qui mélange les deux a été modifiée ou assemblée.
Padding et longueurs impossibles
Le padding = rend la longueur multiple de 4. Sans lui, un reste de 2 ou 3 peut être complété ; un reste de 1 est impossible pour un Base64 valide : un caractère a été perdu ou ajouté. Un = au milieu signifie en général que deux chaînes ont été concaténées.
Les octets magiques décident du type
Un fichier déclare son format dans ses premiers octets : %PDF- pour un PDF, 89 50 4E 47 pour un PNG, 50 4B 03 04 pour les formats basés sur ZIP comme DOCX et XLSX. Ces octets fixent les premiers caractères Base64, donc le type se lit avant même le décodage : voir le tableau dans l'outil.
Comment un PDF tronqué est détecté
Un PDF se termine par %%EOF. Si ce marqueur n'apparaît pas dans les 1 024 derniers octets, le fichier a presque certainement été coupé. L'en-tête peut commencer jusqu'à 1 024 octets plus loin ; la plupart des lecteurs ouvrent quand même ces fichiers, donc c'est signalé sans être rejeté.

Bonnes pratiques pour envoyer des fichiers en Base64

Envoyez le type MIME et le nom du fichier avec les données
Le Base64 ne transporte ni nom ni type. Placez les deux à côté ({"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) ou utilisez une data URI, pour que le destinataire n'ait pas à deviner.
Vérifiez les octets magiques côté réception
Avant d'enregistrer, vérifiez que les octets décodés commencent par %PDF-. Une seule ligne de code attrape les mauvais champs, le double encodage et les pages d'erreur renvoyées en Base64.
Préférez multipart ou une URL pour les gros fichiers
Le Base64 ajoute un tiers à la taille et toute la chaîne doit tenir en mémoire. Au-delà de quelques mégaoctets, multipart/form-data ou une URL de téléchargement pré-signée est plus léger pour les deux côtés.
Stockez des octets, pas du Base64, en base de données
Une colonne BLOB/bytea est un tiers plus petite et ne peut pas être tronquée en silence comme un VARCHAR. N'encodez en Base64 qu'à la frontière de l'API.

Base64 en PDF — FAQ

Comment convertir du Base64 en PDF ?
Collez le Base64 dans la zone de cette page. Il est décodé immédiatement, le PDF s'ouvre dans l'aperçu et Télécharger l'enregistre en .pdf. Le préfixe data:application/pdf;base64,, les guillemets, les retours à la ligne et les échappements JSON peuvent rester : ils sont retirés automatiquement.
Pourquoi mon PDF décodé ne s'ouvre-t-il pas ?
Les causes habituelles : le préfixe data: a été décodé avec les données ; les octets ont été écrits comme du texte et non en binaire ; la chaîne a été coupée (pas de %%EOF à la fin) ; le Base64 a été encodé deux fois ; ou ce n'est pas du tout un PDF, par exemple un PNG ou un message d'erreur JSON. Collez la même chaîne ici : chacun de ces cas affiche un avertissement précis.
Mon fichier est-il envoyé sur un serveur ?
Non. Le décodage, la détection du type, l'aperçu et l'encodage s'exécutent dans votre navigateur en JavaScript. Rien de ce que vous collez ou déposez n'est envoyé où que ce soit : vous pouvez l'utiliser pour des factures, des contrats ou des pièces d'identité.
Comment savoir quel type de fichier contient le Base64 ?
Regardez comment il commence : JVBERi0 pour un PDF, iVBORw0KGgo pour un PNG, /9j/ pour un JPEG, R0lGOD pour un GIF, UEsDB pour un ZIP (et donc DOCX, XLSX, PPTX), H4sI pour du gzip. L'outil lit les octets magiques décodés, affiche le type et enregistre le fichier avec l'extension correspondante.
Puis-je convertir du Base64 en Word, Excel, image ou ZIP ?
Oui. N'importe quel type de fichier peut être décodé ; l'extension est déduite du contenu. DOCX, XLSX et PPTX sont reconnus à l'intérieur du conteneur ZIP, et les anciens fichiers DOC/XLS sont reconnus comme Office 97–2003. Les images, l'audio et la vidéo sont prévisualisés ; les autres types se téléchargent directement.
Comment convertir un PDF en Base64 ?
Ouvrez l'onglet PDF / fichier → Base64 et déposez le PDF. Choisissez du Base64 brut ou une data URI, en option URL-safe ou coupé à 76 caractères, puis copiez le résultat ou téléchargez-le en fichier .txt.
Quelle différence entre Base64 et data URI ?
Une data URI, c'est du Base64 précédé d'un en-tête qui indique le type : data:application/pdf;base64,JVBERi0…. Les navigateurs peuvent l'ouvrir directement comme lien ou comme src. Les API attendent en général uniquement la partie Base64 après la virgule.
Pourquoi l'outil affiche-t-il « Ce n'est pas un PDF » ?
Parce que les octets décodés ne commencent pas par %PDF-. Le type affiché est ce que les octets sont réellement. Les surprises fréquentes : un scan PNG ou JPEG, un DOCX, un ZIP contenant plusieurs PDF, ou un message d'erreur JSON ou HTML encodé en Base64 à la place du document.
Que signifie « pas de %%EOF à la fin » ?
Tout PDF se termine par le marqueur %%EOF. S'il manque, le Base64 a presque certainement été tronqué : copié en partie seulement, coupé par une colonne de base de données comme un TEXT MySQL (65 535 octets), ou raccourci par une limite de longueur de ligne de log. Récupérez à nouveau la chaîne complète ; le décodage ne peut pas reconstituer des données manquantes.
Que signifie « décodé une deuxième fois » ?
Les données décodées étaient elles-mêmes du texte Base64. Cela arrive quand une valeur est encodée une fois par votre code puis une seconde fois par un framework ou un client HTTP. L'outil ne décode la couche interne que si elle s'avère être un fichier reconnaissable : un texte ordinaire n'est jamais décodé par erreur.
Y a-t-il une limite de taille ?
Le texte collé peut atteindre 100 MB et les fichiers à encoder 50 MB. Pour un Base64 très long, Ouvrir un fichier .txt est plus rapide que le collage. L'aperçu texte montre les 100 000 premiers caractères ; le téléchargement est toujours complet.
Pourquoi l'aperçu du PDF est-il vide sur mon téléphone ?
Les navigateurs mobiles gèrent les PDF intégrés de façons différentes ; certains n'affichent que la première page, voire rien. Utilisez Ouvrir dans un nouvel onglet ou Télécharger : le fichier lui-même n'est pas concerné.

Table ASCII et convertisseur de caractères

Encodage et formatage

La table ASCII complète : 128 caractères en décimal, hexadécimal, octal et binaire, plus un convertisseur texte ↔ ASCII. Les caractères de contrôle ont leur échappement, leur notation caret et où vous les croisez.

Générateur de Codes-Barres Gratuit — EAN-13 & Code 128

Encodage et formatage

Générez des codes-barres EAN-13, UPC-A, Code 128, Code 39 et 11 autres formats en SVG ou en PNG prêt à imprimer. Saisissez 12 chiffres, la clé de contrôle est ajoutée ; en cas d'erreur, le chiffre attendu est indiqué.

Décodeur et Encodeur Base64

Encodage et formatage

Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.

Convertisseur Base64 en Image

Encodage et formatage

Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.

Convertisseur CSV vers JSON

Encodage et formatage

Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.

Convertisseur d'encodage et réparateur de mojibake

Encodage et formatage

Collez du texte illisible et récupérez l'original. Chaque chaîne d'encodage plausible — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — est testée puis classée, la chaîne exacte affichée. Gratuit, privé, dans votre navigateur.