Slik bruker du verktøyet
- Slipp en PDF i opplastingsfeltet, eller klikk for å velge en (opptil 100 MB).
- Se på forhåndsvisningen for å forsikre deg om at det er riktig dokument.
- Velg ren Base64 for API-forespørsler, eller en data URI for å bygge PDF-en inn i en nettside.
- Kopier resultatet eller last det ned som en .txt-fil.
Sende PDF-er gjennom JSON-API-er
JSON har ingen binær datatype, så REST-API-er som tar imot dokumenter, får dem vanligvis som en Base64-streng. Plattformer for elektronisk signering, faktura- og e-fakturasystemer, utskrifts- og posttjenester, OCR-motorer og dokumentarkiver tar ofte imot PDF-er på denne måten, i et felt som content, file eller documentBase64, med filnavnet i et eget felt. Noen tjenester returnerer PDF-er på samme måte, og Base64 til PDF gjør dem om til filer igjen.
Send ren Base64 uten linjeskift med mindre API-dokumentasjonen sier noe annet, for mange API-er avviser en verdi som fortsatt har prefikset data:application/pdf;base64,. Husk også grensene for forespørselsstørrelse: en PDF på 7,5 MB blir omtrent 10 MB med Base64.
Slik kjenner du igjen en Base64-PDF
En PDF-fil begynner med tegnene %PDF- etterfulgt av versjonsnummeret. Kodet som Base64 gir disse bytene alltid en streng som begynner med JVBERi0. En lang streng som begynner med JVBER i et API-svar, en databasekolonne eller en loggfil, er nesten helt sikkert en PDF. Den samme sjekken fungerer før du sender en nyttelast: begynner strengen din med noe annet, kan du ha kodet feil data eller kodet dem to ganger.
Bygge en PDF inn i HTML
En data URI legger hele PDF-en inn i en HTML-side, uten noen egen fil som må ligge på en server:
<embed src="data:application/pdf;base64,JVBERi0..." type="application/pdf" width="100%" height="600">
<iframe src="data:application/pdf;base64,JVBERi0..." width="100%" height="600"></iframe>
Dette fungerer i nettlesere på datamaskiner som har innebygd PDF-visning, men det har sine begrensninger. Mange mobilnettlesere viser ikke PDF-er inne i en side i det hele tatt. Chrome og enkelte andre nettlesere hindrer også en side i å sende hele fanen til en data:-URL, så en lenke eller et window.open-kall som peker på en data:application/pdf-URI, kan åpne en tom fane eller ikke gjøre noe. Vil du åpne en PDF i en ny fane fra JavaScript, bør du heller konvertere Base64 til en Blob-URL. For dokumenter større enn noen få megabyte er en vanlig fil-URL som regel et bedre valg.
Kode en PDF i programkode
# Python: bygg en JSON-forespørselskropp
import base64, json
from pathlib import Path
pdf_b64 = base64.b64encode(Path('invoice.pdf').read_bytes()).decode('ascii')
body = json.dumps({'filename': 'invoice.pdf', 'content': pdf_b64})
// Nettleser: filen kommer fra et <input type="file">
const reader = new FileReader();
reader.onload = () => {
const pdfBase64 = reader.result.split(',')[1]; // fjern data URI-prefikset
};
reader.readAsDataURL(file);
Ofte stilte spørsmål
Hvorfor begynner Base64-strengen for PDF-en min med JVBERi0?
%PDF-, hodet som står først i alle PDF-filer. Ser du dem, vet du at strengen inneholder en PDF.Blir PDF-en lastet opp når jeg konverterer den?
Nei. Filen leses, kodes og forhåndsvises lokalt i nettleseren din. Kontrakter, fakturaer og andre konfidensielle dokumenter forlater aldri enheten din.
Endrer eller komprimerer kodingen PDF-en?
Nei. Base64-strengen dekodes til nøyaktig de samme bytene, så passordbeskyttelse, digitale signaturer, skjemafelt og metadata bevares. Teksten er omtrent 33 % større enn PDF-en. Vil du redusere størrelsen, komprimerer du PDF-en før du koder den.
Bør jeg slå på linjebryting?
Bare når formatet krever det, for eksempel når du bygger en MIME-e-post for hånd, der linjene i vedlegg er begrenset til 76 tegn. JSON-API-er og data URI-er i HTML forventer én sammenhengende streng.
Hvor stor kan PDF-en være?
Verktøyet godtar filer på opptil 100 MB. For API-er er den praktiske grensen som regel lavere, så sjekk maksimal forespørselsstørrelse og husk at Base64 legger til omtrent en tredjedel. Svært lange utdata kan være trege å vise på skjermen, så bruk Last ned for store dokumenter.