Konverter PDF ke Base64

Enkode dokumen PDF sebagai Base64 untuk permintaan API, email, atau penyematan di HTML. Penampil bawaan menampilkan PDF tersebut, sehingga Anda dapat memastikan filenya benar sebelum menyalin hasilnya.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Seret PDF ke area unggah atau klik untuk memilih file (hingga 100 MB).
  2. Lihat pratinjaunya untuk memastikan dokumennya benar.
  3. Pilih Base64 mentah untuk permintaan API, atau Data URI untuk menyematkan PDF di halaman web.
  4. Salin hasilnya atau unduh sebagai file .txt.

Mengirim PDF melalui API JSON

JSON tidak memiliki tipe biner, sehingga REST API yang menerima dokumen biasanya memintanya dalam bentuk string Base64. Platform tanda tangan elektronik, sistem faktur dan e-billing, layanan cetak dan pengiriman surat, mesin OCR, serta arsip dokumen umumnya menerima PDF dengan cara ini, dalam kolom seperti content, file, atau documentBase64, dengan nama file di kolom terpisah. Beberapa layanan juga mengembalikan PDF dengan cara yang sama; Base64 ke PDF mengubahnya kembali menjadi file.

Kirim Base64 mentah tanpa jeda baris kecuali dokumentasi API menyatakan lain, karena banyak API menolak nilai yang masih membawa awalan data:application/pdf;base64,. Perhatikan juga batas ukuran permintaan: PDF 7,5 MB menjadi sekitar 10 MB Base64.

Mengenali PDF dalam bentuk Base64

File PDF diawali dengan karakter %PDF- yang diikuti nomor versi. Jika dienkode sebagai Base64, byte tersebut selalu menghasilkan string yang diawali JVBERi0. String panjang yang diawali JVBER dalam respons API, kolom database, atau file log hampir pasti adalah PDF. Pemeriksaan yang sama berguna sebelum Anda mengirim payload: jika string Anda diawali dengan karakter lain, mungkin Anda mengenkode data yang salah atau mengenkodenya dua kali.

Menyematkan PDF di HTML

Data URI menempatkan seluruh PDF di dalam halaman HTML, tanpa file terpisah yang perlu di-hosting:

<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>

Cara ini berfungsi di browser desktop yang memiliki penampil PDF bawaan, tetapi ada batasannya. Banyak browser seluler sama sekali tidak menampilkan PDF di dalam halaman. Chrome dan beberapa browser lain juga memblokir halaman yang mengarahkan seluruh tab ke URL data:, sehingga tautan atau panggilan window.open yang mengarah ke URI data:application/pdf mungkin membuka tab kosong atau tidak melakukan apa-apa. Untuk membuka PDF di tab baru dari JavaScript, ubah Base64 menjadi Blob URL sebagai gantinya. Untuk dokumen yang lebih besar dari beberapa megabyte, URL file biasa umumnya merupakan pilihan yang lebih baik.

Mengenkode PDF dalam kode

# Python: membuat body permintaan JSON
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})

// Browser: file berasal dari <input type="file">
const reader = new FileReader();
reader.onload = () => {
  const pdfBase64 = reader.result.split(',')[1]; // buang awalan data URI
};
reader.readAsDataURL(file);

Pertanyaan yang sering diajukan

Mengapa string Base64 PDF saya diawali JVBERi0?
Karakter tersebut adalah hasil enkode Base64 dari %PDF-, yaitu header di awal setiap file PDF. Jika Anda melihatnya, berarti string tersebut berisi PDF.
Apakah PDF diunggah saat saya mengonversinya?

Tidak. File dibaca, dienkode, dan ditampilkan pratinjaunya secara lokal di browser Anda. Kontrak, faktur, dan dokumen rahasia lainnya tidak pernah meninggalkan perangkat Anda.

Apakah pengodean mengubah atau mengompresi PDF?

Tidak. String Base64 didekode menjadi byte yang persis sama, sehingga perlindungan kata sandi, tanda tangan digital, kolom formulir, dan metadata tetap utuh. Teksnya sekitar 33% lebih besar daripada PDF-nya; untuk mengurangi ukuran, kompres PDF sebelum mengenkodenya.

Apakah saya perlu mengaktifkan bungkus baris?

Hanya jika formatnya mengharuskan, misalnya saat Anda menyusun email MIME secara manual, karena baris lampiran dibatasi 76 karakter. API JSON dan data URI di HTML mengharapkan satu string yang tidak terputus.

Seberapa besar PDF yang didukung?

Alat ini menerima file hingga 100 MB. Untuk API, batas praktisnya biasanya lebih rendah, jadi periksa ukuran permintaan maksimum dan ingat bahwa Base64 menambah sekitar sepertiga ukuran. Keluaran yang sangat panjang bisa lambat ditampilkan di layar; gunakan Unduh untuk dokumen besar.