Så använder du verktyget
- Släpp en PDF på uppladdningsytan eller klicka för att välja en (upp till 100 MB).
- Titta på förhandsvisningen för att se att det är rätt dokument.
- Välj rå Base64 för API-anrop, eller en data URI för att bädda in PDF-filen på en webbsida.
- Kopiera resultatet eller ladda ned det som en .txt-fil.
Skicka PDF-filer via JSON-API:er
JSON har ingen binär datatyp, så REST-API:er som tar emot dokument brukar ta emot dem som en Base64-sträng. Plattformar för e-signering, system för fakturering och e-fakturor, tryck- och posttjänster, OCR-motorer och dokumentarkiv tar ofta emot PDF-filer på det här sättet, i ett fält som content, file eller documentBase64, med filnamnet i ett separat fält. Vissa tjänster returnerar PDF-filer på samma sätt, och Base64 till PDF gör om dem till filer igen.
Skicka rå Base64 utan radbrytningar om inte API-dokumentationen säger något annat, eftersom många API:er avvisar ett värde som fortfarande har prefixet data:application/pdf;base64,. Tänk också på gränserna för anropets storlek: en PDF på 7,5 MB blir ungefär 10 MB Base64.
Så känner du igen en PDF i Base64
En PDF-fil börjar med tecknen %PDF- följt av versionsnumret. Kodade som Base64 ger de bytena alltid en sträng som börjar med JVBERi0. En lång sträng som börjar med JVBER i ett API-svar, en databaskolumn eller en loggfil är nästan säkert en PDF. Samma kontroll fungerar innan du skickar data: om din sträng börjar med något annat kan du ha kodat fel data, eller kodat den två gånger.
Bädda in en PDF i HTML
En data URI lägger hela PDF-filen inuti en HTML-sida, utan någon separat fil som måste ligga 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>
Det fungerar i datorwebbläsare med inbyggd PDF-visare, men det finns begränsningar. Många mobila webbläsare visar inte PDF-filer inuti en sida över huvud taget. Chrome och vissa andra webbläsare hindrar dessutom en sida från att skicka hela fliken till en data:-URL, så en länk eller ett anrop till window.open som pekar på en data:application/pdf-URI kan öppna en tom flik eller inte göra någonting alls. Vill du öppna en PDF i en ny flik från JavaScript ska du i stället konvertera Base64 till en Blob-URL. För dokument som är större än några megabyte är en vanlig fil-URL oftast det bättre valet.
Koda en PDF i kod
# Python: bygg en JSON-body för anropet
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})
// Webbläsare: filen kommer från en <input type="file">
const reader = new FileReader();
reader.onload = () => {
const pdfBase64 = reader.result.split(',')[1]; // ta bort prefixet för data URI
};
reader.readAsDataURL(file);
Vanliga frågor
Varför börjar min PDF-sträng i Base64 med JVBERi0?
%PDF-, huvudet i början av varje PDF-fil. Ser du dem vet du att strängen innehåller en PDF.Laddas PDF-filen upp när jag konverterar den?
Nej. Filen läses, kodas och förhandsvisas lokalt i din webbläsare. Avtal, fakturor och andra konfidentiella dokument lämnar aldrig din enhet.
Ändrar eller komprimerar kodningen PDF-filen?
Nej. Base64-strängen avkodas till exakt samma byte, så lösenordsskydd, digitala signaturer, formulärfält och metadata bevaras. Texten är ungefär 33 % större än PDF-filen. Vill du minska storleken kan du komprimera PDF-filen innan du kodar den.
Ska jag slå på radbrytning?
Bara när formatet kräver det, till exempel när du bygger ett MIME-meddelande för hand, där raderna i bilagor är begränsade till 76 tecken. JSON-API:er och data URI:er i HTML förväntar sig en sammanhängande sträng.
Hur stor kan PDF-filen vara?
Verktyget tar emot filer på upp till 100 MB. För API:er är den praktiska gränsen oftast lägre, så kontrollera den största tillåtna anropsstorleken och kom ihåg att Base64 lägger till ungefär en tredjedel. Mycket lång utdata kan ta tid att visa på skärmen, så använd Ladda ned för stora dokument.