Skip to content

Convertire Base64 in PDF e file · PDF in Base64

Base64 in PDF online: incolla Base64 puro, un data URI o l'intera risposta JSON. Rileva il vero tipo di file, mostra l'anteprima, lo scarica e segnala i PDF troncati. Anche da PDF a Base64. Nessun upload.

Niente tracciamento Funziona nel browser Gratuito
Decodifica e codifica avvengono interamente nel tuo browser. Il tuo Base64 e i tuoi file non vengono mai caricati.

Interpretato così:

Che file è questo Base64? Guarda come inizia

Ogni tipo di file inizia con byte "magici" fissi, quindi anche il suo Base64 inizia con caratteri fissi. I prefissi qui sotto sono calcolati da intestazioni di file reali con lo stesso motore usato da questo strumento.

Il Base64 inizia con Tipo di file Magic byte (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
Comportamento verificato rispetto a RFC 4648, RFC 2045 e RFC 2397 e alle firme dei file PDF, PNG, ZIP e Office. — Go Tools Engineering · Sep 30, 2026

Scritto e revisionato dagli ingegneri che sviluppano gli strumenti di codifica di Go Tools. Ogni lunghezza, prefisso ed esempio di questa pagina è prodotto dal motore della pagina stessa e verificato da test automatici.

Base64 in PDF — risposte rapide

Che file è un Base64 che inizia con JVBERi0?

JVBERi0 = PDF Un PDF. Ogni PDF inizia con i byte `%PDF-`, che in Base64 diventano `JVBERi0`. `iVBORw0KGgo` è un PNG, `/9j/` è un JPEG e `UEsDB` è uno ZIP, quindi anche DOCX e XLSX.

Quanto è più grande il Base64 rispetto al file originale?

+33.3% 4 caratteri ogni 3 byte, cioè circa il 33.3% in più: un PDF da 1 MB (1.048.576 byte) diventa 1.398.104 caratteri. Con un a capo ogni 76 caratteri, come negli allegati email, sono 1.434.896 caratteri, il 36.8% in più.

Che cos'è un PDF in Base64?

Il Base64 rappresenta byte qualsiasi usando solo 64 caratteri di testo sicuri (A–Z, a–z, 0–9, +, /), con = come padding. Ogni 3 byte diventano 4 caratteri. Così un file binario come un PDF può passare attraverso canali che trasportano solo testo: un campo JSON, un elemento XML, il corpo di un'email, una colonna di testo in un database. Convertire Base64 in PDF significa semplicemente fare il percorso inverso: ritrasformare i caratteri in byte e salvarli con estensione .pdf. Il problema è che il Base64 reale arriva raramente pulito: porta con sé un prefisso data:, escape JSON, a capo o un alfabeto diverso, e molti convertitori producono in silenzio un file che non si apre.

%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

Funzionalità

Incollalo così com'è

Gestisce data URI, escape JSON \/ e \n, virgolette, a capo MIME, - _ URL-safe, %2B %2F copiati da un URL, intestazioni PEM e padding = mancante, e mostra ogni passaggio eseguito.

Accetta l'intera risposta JSON

Incolla {"code":0,"data":{"file":"JVBERi0…"}} così com'è. Viene usato il campo più lungo che somiglia a Base64 e ne viene mostrato il percorso (data.file), così sai quale campo è stato decodificato.

Tipo reale dai magic byte

PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 e più di 40 altri formati vengono riconosciuti dai primi byte. Il download riceve l'estensione giusta anche quando il prefisso dice altro.

Spiega perché un file non si apre

Segnala un PDF senza %%EOF (troncato durante la copia o dal limite di lunghezza di una colonna), Base64 codificato due volte, esadecimale incollato come Base64, dati compressi con gzip e PDF cifrati.

Anteprima nella pagina

I PDF si aprono nel visualizzatore integrato del browser, immagini e SVG vengono mostrati, testo e JSON appaiono come testo. L'HTML non viene mai renderizzato, solo il suo sorgente, perché verrebbe eseguito in questa pagina.

PDF o qualsiasi file in Base64

Trascina un file fino a 50 MB e ottieni Base64 puro o un data URI, anche URL-safe o con a capo ogni 76 caratteri, con l'aumento di dimensione esatto.

Base64 in PDF con Python, Java, JavaScript e altri

Python

base64.b64decode

open('out.pdf', 'wb').write(base64.b64decode(s)). Usa urlsafe_b64decode per - e _; b64decode ignora gli a capo a meno che tu non passi validate=True.

Java

java.util.Base64

Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() rifiuta gli a capo; getUrlDecoder() serve per - e _.

Node.js

Buffer

fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer accetta entrambi gli alfabeti e ignora gli spazi, ma salta in silenzio anche qualsiasi altro carattere non valido invece di generare un errore: verifica che il risultato inizi con %PDF-.

JavaScript nel browser

atob / Uint8Array.fromBase64

Costruisci un Uint8Array prima di creare il Blob. Uint8Array.fromBase64() è la funzione nativa più recente; verifica il supporto nei browser a cui ti rivolgi.

PHP

base64_decode

file_put_contents('out.pdf', base64_decode($s, true)). Passa true per la modalità rigorosa, altrimenti i caratteri non validi vengono scartati in silenzio.

C#

Convert.FromBase64String

File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Gli spazi sono ammessi; - e _ no.

Riga di comando

base64 -d / certutil

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

Esempi di conversione da Base64 a PDF

Base64 puro di un PDF

JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · versione 1.4 · scaricato come file.pdf

Inizia con JVBERi0, cioè %PDF-. Non c'è nulla da pulire, quindi viene decodificato così com'è.

Stringa copiata da una risposta JSON

"data:application\/pdf;base64,JVBERi0xLjQK…"
Interpretato così: virgolette rimosse → escape JSON annullati → prefisso data URI rimosso (application/pdf)

Il json_encode di PHP e alcuni serializzatori Java scrivono / come \/. Se lo incolli in un decodificatore che non lo annulla, la barra rovesciata è un carattere non valido.

Intera risposta dell'API

{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}}
Interpretato così: campo data.file estratto dal JSON

Non serve ritagliare la stringa a mano. Viene usato il campo più lungo che somiglia a Base64 e ne viene mostrato il percorso.

Etichettato come PDF, in realtà un PNG

data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Attenzione: il data URI dichiara application/pdf, ma i byte sono PNG. Salvato come file.png

Molti convertitori scriverebbero un .pdf che nessun lettore riesce ad aprire. I magic byte contano più dell'etichetta.

Esadecimale incollato al posto del Base64

255044462d312e370a…
Attenzione: sembra esadecimale; letto come hex è un PDF. [Decodifica come hex]

Le cifre esadecimali sono tutte caratteri Base64 validi, quindi la decodifica Base64 non fallisce: produce in silenzio dati senza senso. 25 50 44 46 è %PDF.

Come convertire Base64 in PDF

  1. 1

    Incolla il Base64 così come l'hai ricevuto

    Base64 puro, data:application/pdf;base64,…, una stringa copiata da un JSON con escape \/ o l'intera risposta dell'API. Per stringhe molto lunghe usa Apri un file .txt invece di incollare.

  2. 2

    Controlla come è stato interpretato

    La riga sotto la casella elenca ogni passaggio di pulizia: prefisso rimosso, escape annullati, padding aggiunto, campo estratto dal JSON. Se qualcosa non va, l'errore indica il carattere esatto e la sua posizione.

  3. 3

    Guarda il tipo rilevato e gli avvisi

    Il badge mostra il tipo letto dai magic byte del file. Compare una nota gialla se in realtà non è un PDF, se il data URI dichiara un tipo falso o se il PDF è interrotto prima di %%EOF.

  4. 4

    Visualizza l'anteprima e scarica

    I PDF si aprono nel visualizzatore del browser, immagini e testo vengono mostrati nella pagina. Rinomina il file se vuoi e clicca Scarica. Per la direzione opposta, passa a PDF / file → Base64 e trascina un file.

Perché un PDF Base64 non si apre: errori comuni

Decodificare il prefisso data URI insieme ai dati

data:application/pdf;base64, non fa parte del Base64. Se lo lasci, o viene generato un errore (: e ; non sono validi) oppure, con i decodificatori permissivi, i primi byte vengono corrotti e il file non inizia più con %PDF-.

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

Scrivere i byte decodificati come testo

Un PDF è binario. Convertire i byte decodificati in stringa e scriverla con una codifica di testo sostituisce i byte non validi e cambia i fine riga, e così la tabella dei riferimenti incrociati si rompe.

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

Decodificatore rigoroso con Base64 spezzato su più righe

Base64.getDecoder() di Java rifiuta gli a capo. Il Base64 delle email o del comando base64 su Linux va a capo ogni 76 caratteri. Usa il decodificatore MIME oppure rimuovi prima gli spazi.

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

Base64 URL-safe passato a un decodificatore standard

I JWT e molti parametri URL usano - e _ al posto di + e /, e omettono il padding =. Un decodificatore standard li rifiuta o decodifica byte sbagliati.

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

Usare il risultato di atob() come testo

Nel browser atob restituisce una stringa binaria, un carattere per byte. Passarla a new Blob([str]) la codifica in UTF-8, trasformando ogni byte sopra 127 in due byte. Copiala prima in un Uint8Array.

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

Stringa troncata

Un PDF termina con %%EOF. Se il Base64 è stato troncato da una colonna VARCHAR, da un limite di lunghezza delle righe di log o da una copia incompleta, il file si decodifica ma i lettori mostrano un errore o pagine mancanti. Confronta la lunghezza con quella prodotta dal mittente.

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

Quando serve convertire Base64 in PDF

Un'API restituisce il PDF in Base64
Le API di fatturazione, firma elettronica e stampa di etichette spesso restituiscono i documenti dentro un JSON. Incolla la risposta per controllare il documento prima di scrivere il codice che lo salva.
Fare debug di un PDF che non si apre
Quando il file salvato è vuoto o danneggiato, incolla qui lo stesso Base64. Lo strumento ti dice se è troncato, codificato due volte, se non è affatto un PDF oppure se è a posto: in quel caso il bug sta nel modo in cui il tuo codice scrive il file.
Inviare un file in una richiesta JSON
Molti endpoint di upload si aspettano {"filename": …, "content": "<base64>"}. Codifica qui il file per costruire una richiesta di prova in Postman o cURL.
Incorporare un file in HTML, CSS o email
Genera un data URI per un link a un PDF inline, un font o una piccola immagine, oppure Base64 a 76 colonne per una parte MIME di un'email.
Recuperare allegati da log e database
I file salvati in una colonna di testo o stampati in un log si possono estrarre direttamente, e un %%EOF mancante ti dice che la colonna o la riga di log era troppo corta.

Come funziona la codifica Base64 dei file

Perché il Base64 è più grande del 33%
Ogni carattere trasporta 6 bit, quindi 3 byte (24 bit) richiedono 4 caratteri. Con il padding la lunghezza è 4 × ⌈n ÷ 3⌉: 100 KB (102.400 byte) diventano 136.536 caratteri. Il formato MIME aggiunge un CRLF ogni 76 caratteri, quindi 1 MB diventa 1.434.896 caratteri invece di 1.398.104.
Alfabeto standard e alfabeto URL-safe
L'RFC 4648 definisce due alfabeti che differiscono solo negli ultimi due caratteri: + / (standard, sezione 4) e - _ (sicuro per URL e nomi di file, sezione 5). Il Base64 URL-safe di solito omette il padding =. Se una stringa li mescola, è stata modificata o unita da due fonti.
Padding e lunghezze impossibili
Il padding = rende la lunghezza un multiplo di 4. Senza, un resto di 2 o 3 si può ripristinare; un resto di 1 è impossibile per qualsiasi Base64 valido: un carattere è andato perso o è stato aggiunto. Un = nel mezzo di solito significa che due stringhe sono state concatenate.
I magic byte decidono il tipo
Un file dichiara il suo formato nei primi byte: %PDF- per i PDF, 89 50 4E 47 per i PNG, 50 4B 03 04 per i formati basati su ZIP come DOCX e XLSX. Quei byte fissano i primi caratteri del Base64, quindi il tipo si può leggere prima di decodificare: vedi la tabella nello strumento.
Come si rileva un PDF troncato
Un PDF termina con %%EOF. Se non compare negli ultimi 1.024 byte, il file è quasi certamente stato troncato. L'intestazione può iniziare fino a 1.024 byte più avanti; la maggior parte dei lettori apre comunque questi file, quindi viene segnalato ma non rifiutato.

Buone pratiche per inviare file in Base64

Invia il tipo MIME e il nome del file insieme ai dati
Il Base64 non contiene né nome né tipo. Mettili accanto ({"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) oppure usa un data URI, così chi riceve non deve indovinare.
Controlla i magic byte lato ricezione
Prima di salvare, verifica che i byte decodificati inizino con %PDF-. Con una riga di codice intercetti campi sbagliati, doppia codifica e pagine di errore restituite in Base64.
Per i file grandi preferisci multipart o un URL
Il Base64 aggiunge un terzo alla dimensione e l'intera stringa deve stare in memoria. Oltre qualche megabyte, multipart/form-data o un URL di download prefirmato pesa meno su entrambi i lati.
Nel database salva i byte, non il Base64
Una colonna BLOB/bytea occupa un terzo in meno e non può essere troncata in silenzio come un VARCHAR. Codifica in Base64 solo al confine dell'API.

Base64 in PDF — domande frequenti

Come convertire Base64 in PDF?
Incolla il Base64 nella casella di questa pagina. Viene decodificato subito, il PDF si apre nell'anteprima e Scarica lo salva come .pdf. Il prefisso data:application/pdf;base64,, le virgolette, gli a capo e gli escape JSON possono restare: vengono rimossi automaticamente.
Perché il mio PDF decodificato non si apre?
Le cause tipiche sono: il prefisso data: è stato decodificato insieme ai dati; i byte sono stati scritti come testo invece che in binario; la stringa è stata troncata (manca %%EOF alla fine); il Base64 è stato codificato due volte; oppure non è affatto un PDF, per esempio un PNG o un messaggio di errore JSON. Incolla qui la stessa stringa: ognuno di questi casi mostra un avviso specifico.
Il mio file viene caricato su un server?
No. Decodifica, rilevamento del tipo, anteprima e codifica vengono eseguiti nel tuo browser con JavaScript. Niente di ciò che incolli o trascini viene inviato altrove, quindi puoi usarlo tranquillamente per fatture, contratti e documenti d'identità.
Come capisco che tipo di file è un Base64?
Guarda come inizia: JVBERi0 è PDF, iVBORw0KGgo è PNG, /9j/ è JPEG, R0lGOD è GIF, UEsDB è ZIP (e quindi DOCX, XLSX, PPTX), H4sI è gzip. Lo strumento legge i magic byte decodificati, mostra il tipo e salva il file con l'estensione corrispondente.
Posso convertire Base64 in Word, Excel, immagine o ZIP?
Sì. Si può decodificare qualsiasi tipo di file; l'estensione dipende dal contenuto. DOCX, XLSX e PPTX vengono riconosciuti all'interno del contenitore ZIP, e i vecchi DOC/XLS vengono riconosciuti come Office 97–2003. Immagini, audio e video hanno l'anteprima; gli altri tipi si scaricano direttamente.
Come convertire un PDF in Base64?
Apri la scheda PDF / file → Base64 e trascina il PDF. Scegli Base64 puro o data URI, eventualmente URL-safe o con a capo ogni 76 caratteri, poi copialo o scaricalo come file .txt.
Che differenza c'è tra Base64 e data URI?
Un data URI è Base64 con un'intestazione che indica il tipo: data:application/pdf;base64,JVBERi0…. I browser lo aprono direttamente come link o src. Le API di solito vogliono solo la parte Base64 dopo la virgola.
Perché dice "Questo non è un PDF"?
Perché i byte decodificati non iniziano con %PDF-. Il tipo mostrato è ciò che i byte sono davvero. Le sorprese più comuni sono una scansione PNG o JPEG, un DOCX, uno ZIP con più PDF, oppure un messaggio di errore JSON o HTML codificato in Base64 al posto del documento.
Cosa significa "manca %%EOF alla fine"?
Ogni PDF termina con il marcatore %%EOF. Se manca, il Base64 è quasi certamente stato troncato: copiato solo in parte, tagliato da una colonna del database come un TEXT di MySQL (65.535 byte) o accorciato da un limite di lunghezza delle righe di log. Recupera di nuovo la stringa completa; la decodifica non può ricostruire dati mancanti.
Cosa significa "decodificato una seconda volta"?
I dati decodificati erano a loro volta testo Base64. Succede quando un valore viene codificato una volta dal tuo codice e di nuovo da un framework o da un client HTTP. Lo strumento decodifica lo strato interno solo se risulta essere un file riconoscibile, quindi il testo normale non viene mai decodificato per errore.
C'è un limite di dimensione?
Il testo incollato può arrivare a 100 MB e i file da codificare a 50 MB. Per un Base64 molto lungo, Apri un file .txt è più veloce che incollare. L'anteprima del testo mostra i primi 100.000 caratteri; il download è sempre completo.
Perché l'anteprima del PDF è vuota sul telefono?
I browser mobili gestiscono i PDF incorporati in modi diversi; alcuni mostrano solo la prima pagina o niente. Usa Apri in una nuova scheda o Scarica: il file in sé non ha problemi.

Strumenti correlati

Vedi tutti gli strumenti →

Tabella ASCII e convertitore di caratteri

Codifica e formattazione

La tabella ASCII completa: 128 caratteri in decimale, esadecimale, ottale e binario, più un convertitore online testo ↔ ASCII. Ogni carattere di controllo ha il suo escape, la notazione caret e dove lo incontri.

Generatore di Codici a Barre — EAN-13, UPC-A e Code 128

Codifica e formattazione

Genera online EAN-13, UPC-A, Code 128, Code 39 e altri 11 tipi di codici a barre come SVG o PNG pronti per la stampa. Inserisci 12 cifre e la cifra di controllo viene calcolata: se sbagli, ti diciamo qual è quella giusta.

Decodificatore e codificatore Base64

Codifica e formattazione

Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.

Convertitore da Base64 a immagine

Codifica e formattazione

Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.

Convertitore CSV in JSON

Codifica e formattazione

Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.

Convertitore di Codifica e Riparazione Mojibake

Codifica e formattazione

Incolla il testo illeggibile e riottieni l'originale. Ogni catena di codifica plausibile — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — viene provata e ordinata, con la catena esatta in chiaro. Gratis e tutto in locale.