ตัวแปลง PDF เป็น Base64

เข้ารหัสเอกสาร PDF เป็น Base64 สำหรับคำขอ API อีเมล หรือการฝังใน HTML ตัวแสดงผลในตัวจะแสดงไฟล์ PDF ให้คุณยืนยันว่าเป็นไฟล์ที่ถูกต้องก่อนคัดลอกผลลัพธ์

ทำงานภายในเบราว์เซอร์ของคุณทั้งหมด ไม่มีการอัปโหลดข้อมูลใด ๆ

วิธีใช้งาน

  1. ลากไฟล์ PDF มาวางในพื้นที่อัปโหลดหรือคลิกเพื่อเลือกไฟล์ (ไม่เกิน 100 MB)
  2. ดูตัวอย่างเพื่อให้แน่ใจว่าเป็นเอกสารที่ถูกต้อง
  3. เลือก Base64 ล้วนสำหรับคำขอ API หรือ Data URI เพื่อฝัง PDF ในหน้าเว็บ
  4. กด “คัดลอก” ผลลัพธ์ หรือ “ดาวน์โหลด” เป็นไฟล์ .txt

การส่ง PDF ผ่าน API แบบ JSON

JSON ไม่มีชนิดข้อมูลไบนารี REST API ที่รับเอกสารจึงมักรับในรูปสตริง Base64 แพลตฟอร์มลายเซ็นอิเล็กทรอนิกส์ ระบบออกใบแจ้งหนี้และใบกำกับภาษีอิเล็กทรอนิกส์ บริการพิมพ์และส่งไปรษณีย์ ระบบ OCR และระบบจัดเก็บเอกสารมักรับ PDF ด้วยวิธีนี้ ในฟิลด์อย่าง content, file หรือ documentBase64 โดยมีชื่อไฟล์อยู่ในฟิลด์แยก บางบริการก็ส่ง PDF กลับมาด้วยวิธีเดียวกัน ซึ่งเครื่องมือ แปลง Base64 เป็น PDF จะแปลงกลับเป็นไฟล์ได้

ให้ส่ง Base64 ล้วนโดยไม่มีการขึ้นบรรทัดใหม่ เว้นแต่เอกสารของ API จะระบุไว้เป็นอย่างอื่น เพราะ API จำนวนมากปฏิเสธค่าที่ยังมีส่วนนำหน้า data:application/pdf;base64, อยู่ และควรคำนึงถึงขีดจำกัดขนาดคำขอด้วย ไฟล์ PDF ขนาด 7.5 MB จะกลายเป็น Base64 ประมาณ 10 MB

วิธีสังเกต PDF ที่เป็น Base64

ไฟล์ PDF ขึ้นต้นด้วยอักขระ %PDF- ตามด้วยหมายเลขเวอร์ชัน เมื่อเข้ารหัสเป็น Base64 ไบต์เหล่านี้จะให้สตริงที่ขึ้นต้นด้วย JVBERi0 เสมอ สตริงยาวที่ขึ้นต้นด้วย JVBER ในการตอบกลับของ API คอลัมน์ฐานข้อมูล หรือไฟล์บันทึก จึงแทบจะแน่นอนว่าเป็น PDF การตรวจสอบแบบเดียวกันนี้ใช้ได้ก่อนส่งข้อมูลด้วย หากสตริงของคุณขึ้นต้นด้วยอักขระอื่น คุณอาจเข้ารหัสข้อมูลผิดไฟล์ หรือเข้ารหัสซ้ำสองครั้ง

การฝัง PDF ใน HTML

data URI จะใส่ไฟล์ PDF ทั้งไฟล์ไว้ในหน้า HTML โดยไม่ต้องโฮสต์ไฟล์แยกต่างหาก

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

วิธีนี้ใช้ได้ในเบราว์เซอร์บนเดสก์ท็อปที่มีตัวแสดง PDF ในตัว แต่มีข้อจำกัด เบราว์เซอร์บนมือถือจำนวนมากไม่แสดง PDF ภายในหน้าเว็บเลย นอกจากนี้ Chrome และเบราว์เซอร์อื่นบางตัวยังบล็อกไม่ให้หน้าเว็บนำทั้งแท็บไปยัง URL แบบ data: ลิงก์หรือการเรียก window.open ที่ชี้ไปยัง URI แบบ data:application/pdf จึงอาจเปิดแท็บว่างหรือไม่เกิดอะไรขึ้นเลย หากต้องการเปิด PDF ในแท็บใหม่จาก JavaScript ให้แปลง Base64 เป็น Blob URL แทน สำหรับเอกสารที่ใหญ่กว่าสองสามเมกะไบต์ การใช้ URL ของไฟล์ตามปกติมักเป็นทางเลือกที่ดีกว่า

การเข้ารหัส PDF ด้วยโค้ด

# Python: สร้างเนื้อหาคำขอแบบ 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})

// เบราว์เซอร์: file มาจาก <input type="file">
const reader = new FileReader();
reader.onload = () => {
  const pdfBase64 = reader.result.split(',')[1]; // ตัดส่วนนำหน้าของ data URI ออก
};
reader.readAsDataURL(file);

คำถามที่พบบ่อย

ทำไมสตริง Base64 ของ PDF จึงขึ้นต้นด้วย JVBERi0
อักขระเหล่านี้คือผลการเข้ารหัส Base64 ของ %PDF- ซึ่งเป็นส่วนหัวที่อยู่ตอนต้นของไฟล์ PDF ทุกไฟล์ การพบอักขระชุดนี้จึงยืนยันได้ว่าสตริงนั้นมี PDF อยู่
ไฟล์ PDF ถูกอัปโหลดเมื่อแปลงหรือไม่

ไม่ถูกอัปโหลด ไฟล์จะถูกอ่าน เข้ารหัส และแสดงตัวอย่างภายในเบราว์เซอร์ของคุณ สัญญา ใบแจ้งหนี้ และเอกสารลับอื่น ๆ จะไม่ออกจากอุปกรณ์ของคุณ

การเข้ารหัสเปลี่ยนแปลงหรือบีบอัด PDF หรือไม่

ไม่เลย สตริง Base64 ถอดรหัสกลับเป็นไบต์เดิมทุกประการ การป้องกันด้วยรหัสผ่าน ลายเซ็นดิจิทัล ฟิลด์ฟอร์ม และเมทาดาทาจึงยังคงอยู่ครบ ข้อความจะใหญ่กว่า PDF ประมาณ 33% หากต้องการลดขนาด ให้บีบอัด PDF ก่อนเข้ารหัส

ควรเปิดการตัดบรรทัดหรือไม่

เปิดเฉพาะเมื่อรูปแบบปลายทางกำหนดไว้ เช่น เมื่อคุณสร้างอีเมล MIME ด้วยตนเอง ซึ่งจำกัดความยาวบรรทัดของไฟล์แนบไว้ที่ 76 อักขระ API แบบ JSON และ data URI ใน HTML ต้องการสตริงต่อเนื่องเพียงบรรทัดเดียว

ไฟล์ PDF ใหญ่ได้แค่ไหน

เครื่องมือนี้รับไฟล์ได้สูงสุด 100 MB สำหรับ API ขีดจำกัดในทางปฏิบัติมักต่ำกว่านี้ จึงควรตรวจสอบขนาดคำขอสูงสุด และจำไว้ว่า Base64 เพิ่มขนาดอีกประมาณหนึ่งในสาม เอาต์พุตที่ยาวมากอาจแสดงบนหน้าจอได้ช้า สำหรับเอกสารขนาดใหญ่ ให้ใช้ปุ่ม “ดาวน์โหลด”