Cara menggunakan
- Tempel string Base64, atau data URI yang diawali data:application/pdf;base64, ke kotak masukan.
- Pastikan file terdeteksi sebagai PDF, lalu baca di penampil.
- Unduh PDF untuk menyimpannya di perangkat Anda.
Menyalin Base64 dari respons API
Layanan yang membuat faktur, label pengiriman, laporan, atau kontrak bertanda tangan sering mengembalikan PDF di dalam JSON, misalnya {"filename": "label.pdf", "data": "JVBERi0..."}. Salin hanya teks di antara tanda kutip setelah nama kolom, dan perhatikan detail berikut:
- Garis miring yang di-escape. Beberapa encoder JSON, termasuk
json_encodemilik PHP, menulis setiap/sebagai\/. Karena/adalah karakter Base64 biasa, ganti\/dengan/sebelum menempel, atau urai JSON terlebih dahulu lalu salin nilainya. - Tanda kutip dan koma. Jangan sertakan tanda kutip yang mengapit nilai maupun koma di akhirnya.
- Jeda baris. Spasi dan jeda baris sungguhan di dalam Base64, misalnya nilai yang dibungkus pada 76 karakter, tidak masalah dan tidak perlu dihapus. Lain halnya dengan urutan literal
\natau\r\ndalam JSON mentah: itu adalah karakter garis miring terbalik dan harus dihapus.
Menyalin nilai dari tampilan hasil urai di developer tools browser Anda menghindari semua masalah escape ini.
Mengekstrak lampiran PDF dari email
Lampiran email disimpan sebagai Base64 di dalam pesan mentah. Buka sumber pesan ("Show original" di Gmail, "Message Source" di Thunderbird, "Raw Source" di Apple Mail) dan cari bagian yang header-nya mencantumkan Content-Type: application/pdf (atau application/octet-stream dengan nama file .pdf) dan Content-Transfer-Encoding: base64. Salin blok yang dimulai setelah baris kosong di bawah header tersebut dan berakhir sebelum baris berikutnya yang diawali --, yaitu batas MIME. Tempel di sini apa adanya; jeda baris akan diabaikan.
Menampilkan PDF Base64 di aplikasi web Anda sendiri
Saat front end Anda menerima PDF Base64 dan perlu menampilkannya, Blob URL lebih andal daripada data URI, yang oleh sebagian browser ditolak untuk dibuka di tab baru:
const bytes = Uint8Array.from(atob(base64), c => c.charCodeAt(0));
const blob = new Blob([bytes], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
window.open(url); // atau gunakan sebagai src dari <iframe>
Panggil URL.revokeObjectURL(url) setelah dokumen tidak diperlukan lagi untuk membebaskan memori. Perhatikan bahwa atob hanya menerima alfabet Base64 standar, jadi konversi masukan yang aman untuk URL (- dan _) terlebih dahulu.
Pertanyaan yang sering diajukan
Mengapa Base64 saya tidak terdeteksi sebagai PDF?
JVBERi0, yaitu hasil enkode %PDF-. Jika milik Anda diawali tanda kutip, nama kolom, atau teks lain, hapus bagian tersebut. Jika diawali SlZCRVJ, PDF tersebut dienkode Base64 dua kali: dekode sekali dengan decoder Base64, lalu tempel hasilnya di sini. Jika bukan keduanya, data tersebut mungkin tipe file lain, yang dapat diidentifikasi oleh Base64 ke File.PDF berhasil diunduh tetapi tidak bisa dibuka. Apa yang salah?
Kemungkinan besar Base64-nya terpotong. Log, konsol, dan alat database sering memotong nilai yang panjang, dan PDF yang kehilangan bagian akhirnya tidak dapat dibaca, karena tabel referensi silang yang menunjukkan lokasi setiap halaman disimpan di dekat akhir file. Salin kembali nilai lengkapnya, sebaiknya dengan menyimpan respons asli ke sebuah file.
Pratinjaunya kosong di ponsel saya. Apakah filenya rusak?
Belum tentu. Sebagian browser seluler tidak dapat menampilkan PDF di dalam halaman. Unduh filenya dan buka di aplikasi pembaca PDF untuk memeriksanya.
Bisakah saya mendekode PDF yang dilindungi kata sandi?
Bisa. Dekode memulihkan file byte demi byte, termasuk enkripsinya. Pratinjau mungkin meminta kata sandi atau tetap kosong, dan file yang diunduh dapat dibuka di pembaca PDF mana pun setelah Anda memasukkan kata sandinya.
Apakah dokumen diunggah ke suatu tempat?
Tidak. Dekode dan pratinjau berlangsung di browser Anda, sehingga PDF rahasia seperti kontrak, slip gaji, atau rekam medis tetap berada di perangkat Anda.