PDFSub
ราคาAPIMergeCompressEditE-Signรายการเดินบัญชีบล็อก
กลับไปที่บล็อก
คู่มือรูปแบบ PDFมาตรฐาน PDFPDF/APDF/XPDF/UAโครงสร้าง

รูปแบบไฟล์ PDF อธิบาย: โครงสร้าง, เลเยอร์ และมาตรฐาน

16 พฤษภาคม 2569
T
Todd Lahman
Founder, PDFSub

มีอะไรอยู่ข้างใน PDF จริงๆ บ้าง? แผนภาพพร้อมคำอธิบายประกอบที่ครอบคลุมสี่ส่วนทางกายภาพ (ส่วนหัว, ส่วนเนื้อหา, xref, ส่วนท้าย), หกเลเยอร์เนื้อหา (ข้อความ, รูปภาพ, ฟอนต์, คำอธิบายประกอบ, เวกเตอร์, ลายเซ็น), ข้อมูลเมตา และมาตรฐาน ISO (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT) ที่สร้างขึ้นบนพื้นฐาน


PDF ไม่ใช่สิ่งเดียว มันเป็นคอนเทนเนอร์ไบนารีที่มีโครงสร้างเฉพาะบนดิสก์, ชุดเลเยอร์เนื้อหาที่ซ้อนกันอยู่ภายในคอนเทนเนอร์นั้น และชุดมาตรฐาน ISO ที่สร้างขึ้นบนข้อกำหนดพื้นฐาน เปิดไฟล์ใน hex editor แล้วโครงสร้างจะมองเห็นได้ในรูปแบบข้อความธรรมดาในบรรทัดแรกๆ เปิดไฟล์ในโปรแกรมดู แล้วเลเยอร์ต่างๆ จะแสดงผลรวมกันเป็นหน้าเดียว

คู่มือนี้เป็นข้อมูลอ้างอิงพร้อมป้ายกำกับ: โครงสร้างไฟล์ทางกายภาพ, เลเยอร์เนื้อหาที่ส่วนเนื้อหาเก็บไว้, ข้อมูลเมตาที่ล้อมรอบทุกอย่าง และมาตรฐาน (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT) ที่จำกัดขอบเขตสำหรับการใช้งานเฉพาะกรณี

Anatomy of a PDF file: header, body objects, cross-reference table, trailer, content layers, and metadata

ต้องการใช้แผนภาพนี้บนบล็อกของคุณหรือไม่? คัดลอกโค้ดสำหรับฝังนี้:


สี่ส่วนทางกายภาพ

PDF ทุกไฟล์บนดิสก์มีโครงสร้างสี่ส่วนเหมือนกัน เรียงตามลำดับนี้:

1. ส่วนหัว (Header)

บรรทัดแรกของไฟล์ เริ่มต้นด้วย %PDF- ตามด้วยหมายเลขเวอร์ชันเสมอ:

%PDF-1.7

เวอร์ชันมีตั้งแต่ 1.0 (เปิดตัวปี 1993) ถึง 2.0 (เปิดตัวปี 2017, ปัจจุบัน) ส่วนหัวตามด้วยบรรทัดแสดงความคิดเห็นที่มีไบต์ไบนารี ซึ่งส่งสัญญาณไปยัง FTP และเครื่องมือขนส่งอื่นๆ ว่านี่คือไฟล์ไบนารี

2. ส่วนเนื้อหา (Body) - วัตถุทางอ้อม (Indirect Objects)

เนื้อหาส่วนใหญ่ของไฟล์ หน้า ฟอนต์ รูปภาพ คำอธิบายประกอบ และช่องกรอกข้อมูลทุกอย่างเป็นวัตถุทางอ้อมที่มีหมายเลข:

1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
 
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
 
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobj

วัตถุแต่ละชิ้นมี ID (ตัวเลขก่อน 0 obj), หมายเลขรุ่น (generation number) (0, ใช้สำหรับการอัปเดตแบบเพิ่มส่วน) และข้อมูลระหว่าง << และ >> สำหรับพจนานุกรม (dictionaries) หรือ stream และ endstream สำหรับสตรีมไบนารี (ข้อมูลรูปภาพ, ข้อมูลฟอนต์, เนื้อหาที่บีบอัด)

วัตถุอ้างอิงถึงกันด้วยไวยากรณ์ <id> <gen> R (เช่น 3 0 R หมายถึง "วัตถุ 3, รุ่น 0") นี่คือวิธีที่หน้าอ้างอิงถึงฟอนต์ที่ใช้ หรือวิธีที่แคตตาล็อกอ้างอิงถึงรากของโครงสร้างหน้า

3. ตารางอ้างอิงโยง (Cross-Reference Table - xref)

ตารางค้นหาตำแหน่งไบต์ สำหรับวัตถุทุกชิ้นในส่วนเนื้อหา xref จะบันทึกตำแหน่งไบต์สัมบูรณ์ในไฟล์:

xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 n

นี่คือสิ่งที่ทำให้ PDF สามารถเข้าถึงแบบสุ่มได้ โปรแกรมดูสามารถอ่าน xref, กระโดดไปยังตำแหน่งไบต์ของวัตถุ 3 ได้โดยตรง และแสดงผลหน้านั้นโดยไม่ต้องแยกวิเคราะห์ส่วนที่เหลือของไฟล์ นี่คือเหตุผลที่ PDF ของบทเดียวเปิดได้ทันที แม้ว่าไฟล์ต้นฉบับจะมี 500 หน้า

4. ส่วนท้าย (Trailer)

ส่วนสุดท้าย บอกโปรแกรมแยกวิเคราะห์ว่าจะหา xref ได้ที่ไหน และวัตถุใดคือราก:

trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOF

ค่า startxref คือตำแหน่งไบต์ของตาราง xref เครื่องหมาย %%EOF คือจุดสิ้นสุดของไฟล์จริงๆ ส่วนท้ายคือสิ่งที่ทำให้การอัปเดตแบบเพิ่มส่วนเป็นไปได้: การเพิ่ม xref + trailer ใหม่ที่ส่วนท้ายช่วยให้คุณเพิ่มวัตถุได้โดยไม่ต้องเขียนไฟล์ทั้งหมดใหม่


หกเลเยอร์เนื้อหา

ภายในส่วนเนื้อหา เนื้อหาจะถูกจัดเก็บไว้ในหกประเภทเลเยอร์ หน้า PDF ที่แสดงผลทุกหน้าเป็นการรวมกันของเลเยอร์เหล่านี้:

1. ข้อความ (Text)

คำสั่งตำแหน่งสัญลักษณ์ (glyph) และการอ้างอิงฟอนต์ ไม่ใช่สตริงข้อความ PDF จะเก็บคำสั่งเช่น "วาดสัญลักษณ์ 42 จากฟอนต์ F3 ที่ตำแหน่ง (120, 540)" แทนที่จะเป็น "วาดตัวอักษร A ที่นี่" นี่คือเหตุผลที่ข้อความสามารถเลือกและค้นหาได้: โปรแกรมดูจะแมป ID สัญลักษณ์ย้อนกลับไปยังจุดรหัส Unicode ผ่านการแมป ToUnicode (หรือ CMap สำหรับฟอนต์ CJK)

เมื่อข้อความขาดการแมป ToUnicode คุณจะประสบปัญหาคลาสสิก "PDF ที่เลือกข้อความได้ แต่คัดลอกออกมาเป็นขยะ" ข้อความยังคงมองเห็นได้ แต่การแมปสัญลักษณ์กับ Unicode เสียหายหรือไม่สมบูรณ์

2. รูปภาพ (Images)

จัดเก็บเป็นสตรีมที่ฝังไว้ในรูปแบบต่างๆ:

  • JPEG (ตัวกรอง DCTDecode): ภาพถ่าย, พบได้บ่อยที่สุด
  • JPEG2000 (JPXDecode): การบีบอัดสูงกว่า, พบน้อยกว่า
  • เทียบเท่า PNG (ตัวกรอง FlateDecode + Predictor): ภาพหน้าจอ, ภาพลายเส้น
  • CCITT Group 4 (CCITTFaxDecode): ข้อความสแกนขาวดำ, ใช้ในการสแกนเพื่อเก็บถาวร
  • JBIG2 (JBIG2Decode): ภาพแบบไบนารี, พบได้บ่อยในเอกสารที่ OCR แล้ว

รูปภาพสามารถลดขนาด, บีบอัดใหม่, หรือแทนที่ได้โดยไม่กระทบเนื้อหาอื่น

3. ฟอนต์ (Fonts)

ฝังเป็นโปรแกรมฟอนต์เต็ม, ส่วนย่อย (subset - รวมเฉพาะสัญลักษณ์ที่ใช้), หรืออ้างอิงด้วยชื่อ (ต้องติดตั้งบนระบบของผู้ดู) การทำ subset เป็นค่าเริ่มต้น - ช่วยลดขนาดไฟล์ได้อย่างมาก รูปแบบฟอนต์ที่รองรับ: Type1, TrueType, OpenType, และ CIDFont (สำหรับ CJK)

เมื่อมีการอ้างอิงฟอนต์แต่ไม่ได้ฝังและไม่ได้ติดตั้งบนระบบของผู้ดู โปรแกรมดูจะแทนที่ด้วยฟอนต์ที่คล้ายกัน - ซึ่งมักจะดูไม่ถูกต้อง PDF/A กำหนดให้ต้องฝังฟอนต์ทั้งหมดเพื่อป้องกันปัญหานี้

4. คำอธิบายประกอบ (Annotations)

ไฮไลท์, ความคิดเห็น, ลิงก์, ตราประทับ, ลายน้ำ, และช่องกรอกข้อมูล ทั้งหมดนี้คือคำอธิบายประกอบ พวกมันจะถูกวางซ้อนทับเนื้อหาของหน้า และสามารถเพิ่ม, แก้ไข, หรือลบได้โดยไม่เปลี่ยนแปลงหน้าเดิม

ช่องกรอกข้อมูลเป็นกรณีพิเศษ: คำอธิบายประกอบแบบวิดเจ็ตแบบโต้ตอบ (ส่วนที่มองเห็นได้) บวกกับพจนานุกรมฟิลด์ (ส่วนข้อมูล) เมื่อคุณกรอกแบบฟอร์มและบันทึก มีเพียงพจนานุกรมฟิลด์เท่านั้นที่เปลี่ยนแปลง - ตัวหน้าเองไม่ถูกแตะต้อง

5. กราฟิกเวกเตอร์ (Vector Graphics)

เส้น, รูปร่าง, เส้นโค้ง, และเส้นทางที่วาดด้วยตัวดำเนินการคล้าย PostScript (moveto, lineto, curveto) สามารถปรับขนาดได้ไม่จำกัดโดยไม่สูญเสียคุณภาพ กราฟ CAD ส่วนใหญ่, แผนภูมิ, และแผนภาพใน PDF คือกราฟิกเวกเตอร์

6. ลายเซ็นดิจิทัล (Digital Signatures)

ลายเซ็นที่ได้รับการสนับสนุนจาก PKI ซึ่งผูกติดกับช่วงไบต์ของไฟล์ พจนานุกรมลายเซ็นระบุว่า "ไบต์ 0 ถึง 12,547 และ 14,200 ถึงสิ้นสุดไฟล์ได้รับการลงนาม" - ช่วงเล็กๆ ตรงกลางสงวนไว้สำหรับค่าลายเซ็นเอง การเปลี่ยนแปลงใดๆ ในช่วงไบต์ที่ลงนามจะทำให้ลายเซ็นไม่ถูกต้อง ซึ่งเป็นวิธีที่ PDF ตรวจจับการปลอมแปลงหลังจากการลงนาม

PDF บางไฟล์มีลายเซ็นหลายรายการ ซึ่งซ้อนทับกันเป็นการอัปเดตแบบเพิ่มส่วน - ผู้ลงนามแต่ละรายจะลงนามในไฟล์ตามที่ปรากฏเมื่อได้รับ โดยรักษาห่วงโซ่ไว้


ข้อมูลเมตา: สองระบบคู่ขนาน

PDF มีระบบข้อมูลเมตา 2 ระบบที่มักจะขัดแย้งกัน:

พจนานุกรม /Info มาตรฐาน

จัดเก็บไว้ในส่วนท้าย ฟิลด์: Title, Author, Subject, Keywords, Creator (แอปที่ผู้ใช้สร้างเอกสาร), Producer (แอปที่สร้าง PDF), CreationDate, ModDate สตริงข้อความธรรมดา อ่านได้ง่ายด้วยเครื่องมือ PDF ใดๆ

สตรีมข้อมูลเมตา XMP

สตรีม XML แยกต่างหาก (Adobe XMP, อิงตาม RDF/XML) ที่รองรับสคีมาที่ซับซ้อนกว่า: Dublin Core, IPTC, สคีมาเฉพาะทางที่กำหนดเอง (โปรไฟล์สี, การจดทะเบียนลิขสิทธิ์, การจัดการเวอร์ชันต้นฉบับ)

โปรแกรมสร้าง PDF สมัยใหม่จะเขียนทั้งสองระบบ PDF เก่ามีเพียง /Info เท่านั้น PDF บางไฟล์มี /Info ที่ล้าสมัยจากเวอร์ชันก่อนหน้าและ XMP ที่ถูกต้องจากการแก้ไขล่าสุด - หรือกลับกัน เมื่อตรวจสอบ PDF เพื่อการปฏิบัติตามข้อกำหนดหรือการตรวจสอบทางนิติวิทยาศาสตร์ ให้ตรวจสอบทั้งสองระบบ


มาตรฐาน ISO ที่สร้างบน PDF

ข้อกำหนดพื้นฐานของ PDF คือ ISO 32000 มาตรฐานที่ได้มาหลายฉบับจำกัดขอบเขตของ PDF สำหรับกรณีการใช้งานเฉพาะ:

มาตรฐาน การใช้งาน ข้อจำกัด
PDF/A การเก็บถาวรระยะยาว ฟอนต์ทั้งหมดฝังอยู่, ไม่มี JavaScript, ไม่มีเสียง/วิดีโอ, พื้นที่สีไม่ขึ้นกับอุปกรณ์ ระดับการปฏิบัติตามข้อกำหนด: PDF/A-1, A-2, A-3 (อนุญาตให้แนบไฟล์)
PDF/X การผลิตสิ่งพิมพ์ สี CMYK, ฟอนต์และโปรไฟล์สีที่ฝังอยู่, ไม่มี transparency (PDF/X-1a) หรือมี transparency ที่ควบคุมได้ (PDF/X-4)
PDF/UA การเข้าถึง (Accessibility) โครงสร้างแบบแท็ก (tagged structure tree), ข้อมูลเมตาภาษา, ข้อความสลับสำหรับรูปภาพ, ลำดับการอ่านเชิงตรรกะ
PDF/E วิศวกรรม โมเดล 3 มิติ (รูปแบบ U3D, PRC), ข้อมูลเมตาเฉพาะ CAD
PDF/VT การพิมพ์ตามความต้องการแบบแปรผัน (Variable transactional printing) ปรับให้เหมาะสมสำหรับการส่งจดหมายส่วนบุคคลปริมาณมาก

PDF สามารถเป็นไปตามมาตรฐานหลายฉบับพร้อมกันได้ - PDF/A-2u (การเก็บถาวรพร้อมการแมป Unicode) บวกกับ PDF/UA (การเข้าถึง) เป็นเรื่องปกติสำหรับคลังเอกสารของรัฐบาลและกฎหมาย


PDF แบบ Linearized (ปรับให้เหมาะกับเว็บ)

PDF ที่ "linearized" หรือ "ปรับให้เหมาะกับเว็บ" จะจัดลำดับวัตถุในส่วนเนื้อหาใหม่ เพื่อให้วัตถุของหน้าแรกปรากฏในช่วงต้นของไฟล์ โปรแกรมดูเว็บสามารถแสดงผลหน้า 1 ได้หลังจากดาวน์โหลดเพียงประมาณ 50 KB แรก แทนที่จะต้องรอทั้งไฟล์ ส่วนท้ายจะถูกทำซ้ำที่ส่วนหน้า พร้อมกับตารางบอกใบ้ (hint table) ที่บอกโปรแกรมดูว่าแต่ละหน้าเริ่มต้นที่ใด

โปรแกรมสร้าง PDF สมัยใหม่ส่วนใหญ่รองรับ linearization เป็นตัวเลือก "บันทึกสำหรับเว็บ" รูปแบบนี้จะเพิ่มขนาดไฟล์ 2-5% แลกกับการแสดงผลหน้าแรกอย่างรวดเร็วผ่านการเชื่อมต่อที่ช้า


การเข้ารหัสและสิทธิ์การใช้งาน

PDF สามารถเข้ารหัสด้วยรหัสผ่าน (หรือใบรับรอง) และให้สิทธิ์การใช้งานแบบละเอียด: พิมพ์, คัดลอกข้อความ, แก้ไข, กรอกแบบฟอร์ม, ดึงข้อมูลเพื่อการเข้าถึง การเข้ารหัสจะถูกจัดเก็บไว้ในพจนานุกรม /Encrypt ของส่วนท้าย

ความแข็งแกร่งของการเข้ารหัสมีการพัฒนา: RC4 40 บิต (PDF ยุคแรก, แคร็กได้ง่ายในปัจจุบัน), RC4 128 บิต (ยังคงอ่อนแอ), AES-128, AES-256 การใช้งาน RC4 ดั้งเดิมของ Acrobat 5 ถูกแคร็กต่อสาธารณะในปี 2001 การเข้ารหัส PDF สมัยใหม่ (AES-256, PDF 2.0) นั้นแข็งแกร่งเมื่อใช้กับรหัสผ่านที่รัดกุม

หมายเหตุ: "สิทธิ์การใช้งาน" เป็นเพียงคำแนะนำ โปรแกรมดูที่เคารพสิทธิ์เหล่านั้นจะบังคับใช้ สิทธิ์การใช้งาน โปรแกรมดูที่ไม่สนใจ (หรือเครื่องมือที่ลบการเข้ารหัสออก) จะไม่บังคับใช้


PDFSub อ่าน PDF อย่างไร

PDFSub ประมวลผล PDF โดยใช้การเชื่อมต่อ PDFium ของ Rust (เอนจิ้นเดียวกับที่ขับเคลื่อนโปรแกรมดู PDF ของ Chromium) บวกกับ PaddleOCR สำหรับเอกสารที่สแกน สำหรับรายละเอียดสถาปัตยกรรมฉบับเต็มและการเปรียบเทียบกับเครื่องมือบนคลาวด์ โปรดดู ความปลอดภัยของเบราว์เซอร์เทียบกับคลาวด์สำหรับ PDF.

สำหรับการแปลง PDF เป็นรูปแบบอื่นพร้อมทั้งรักษาโครงสร้างที่อธิบายไว้ข้างต้น:

  • PDF เป็น Excel - ดึงข้อความ + ตาราง, รักษาพิกัด
  • OCR PDF - เพิ่มเลเยอร์ข้อความที่ค้นหาได้ให้กับ PDF ที่สแกน
  • PDF เป็น Word - จัดรูปแบบข้อความใหม่ให้เป็นย่อหน้าที่แก้ไขได้
  • บีบอัด PDF - ลดขนาดรูปภาพ, ทำ subset ฟอนต์

สำหรับเวิร์กโฟลว์การเก็บถาวรโดยเฉพาะ โปรดดู วิธีแปลง PDF เป็น PDF/A.


อ่านเพิ่มเติม

  • ISO 32000-2 (ข้อกำหนด PDF 2.0) - เอกสารอ้างอิงที่เชื่อถือได้, ต้องเสียค่าใช้จ่าย
  • คลังเอกสารอ้างอิง Adobe PDF - เอกสารอ้างอิงฟรีสำหรับ PDF 1.7
  • PDF Association - กลุ่มอุตสาหกรรม, บทความฟรีและไฟล์ทดสอบการปฏิบัติตามข้อกำหนด

สำหรับหัวข้อเฉพาะเกี่ยวกับ PDF: คู่มือการปฏิบัติตามข้อกำหนด PDF สำหรับทนายความ, คู่มือการแปลง PDF/A.

กลับไปที่บล็อก

มีคำถาม? ติดต่อเรา

PDFSub

เครื่องมือ PDF และเอกสารทั้งหมดที่คุณต้องการในที่เดียว รวดเร็ว ปลอดภัย และเป็นส่วนตัว

เป็นไปตาม GDPRเป็นไปตาม CCPAพร้อมสำหรับ SOC 2
ขับเคลื่อนโดย PDFSub Engine

เครื่องมือ PDF

  • รวม PDF
  • แยก PDF
  • จัดลำดับหน้าใหม่
  • หน้าต่อแผ่น
  • โปรแกรมดู PDF
  • ดึงหน้า
  • ดึงรูปภาพ
  • แทนที่รูปภาพ
  • หมุน PDF
  • ลบหน้า
  • เพิ่มลายน้ำ
  • แก้ไข PDF
  • ประทับตรา PDF
  • กรอกแบบฟอร์ม PDF
  • ครอบตัดหน้า
  • เปลี่ยนขนาดหน้า
  • เพิ่มเลขหน้า
  • ส่วนหัวและส่วนท้าย
  • บีบอัด PDF
  • ทำให้ค้นหาได้
  • Clean Scanned PDF
  • Photo to Document
  • Auto-Crop PDF
  • ซ่อมแซม PDF
  • แก้ไขข้อมูลเมตา
  • ลบข้อมูลเมตา
  • PDF เป็น Word
  • Word เป็น PDF
  • PDF to Excel
  • Excel เป็น PDF
  • PDF เป็น PowerPoint
  • PowerPoint เป็น PDF
  • HTML เป็น PDF
  • HTML to Text
  • HTML to Markdown
  • PDF เป็น HTML
  • EPUB เป็น PDF
  • PDF เป็น EPUB
  • ข้อความเป็น PDF
  • RTF เป็น PDF
  • PDF เป็น RTF
  • PDF เป็นข้อความ
  • ODT เป็น PDF
  • PDF เป็น ODT
  • ODS เป็น PDF
  • PDF เป็น ODS
  • ODP เป็น PDF
  • PDF เป็น ODP
  • แปลงเป็น PDF/A
  • สร้าง PDF
  • แปลงเป็นชุด
  • PDF เป็นรูปภาพ
  • รูปภาพเป็น PDF
  • PDF เป็น PNG
  • PNG เป็น PDF
  • HTML to PNG
  • HTML to JPEG
  • HTML to WEBP
  • SVG เป็น PDF
  • PDF เป็น SVG
  • TIFF เป็น PDF
  • WEBP เป็น PDF
  • HEIC เป็นรูปภาพ
  • WEBP เป็น JPG
  • WEBP เป็น PNG
  • Image Converter
  • ODG เป็น PDF
  • ป้องกันด้วยรหัสผ่าน
  • ปลดล็อก PDF
  • ปกปิดข้อมูลใน PDF
  • ลงนามอิเล็กทรอนิกส์ใน PDF
  • Share Document
  • เปรียบเทียบ PDF
  • ดึงตาราง
  • ตัวแปลงใบแจ้งยอดธนาคาร
  • ตัวแยกใบแจ้งหนี้
  • สแกนใบเสร็จ
  • วิเคราะห์รายงานทางการเงิน
  • OCR - ดึงข้อความ
  • แปลงลายมือเขียน
  • สรุป PDF
  • แปล PDF
  • แชทกับ PDF
  • ดึงข้อมูล
  • สตูดิโอออกแบบ

ผลิตภัณฑ์

  • เครื่องมือทั้งหมด
  • คุณสมบัติ
  • รายการเดินบัญชี
  • API
  • ราคา
  • คำถามที่พบบ่อย
  • บล็อก

สนับสนุน

  • เกี่ยวกับเรา
  • ศูนย์ช่วยเหลือ
  • ติดต่อ
  • คำถามที่พบบ่อย

กฎหมาย

  • นโยบายความเป็นส่วนตัว
  • ข้อกำหนดในการให้บริการ
  • นโยบายคุกกี้

© 2026 PDFSub. สงวนลิขสิทธิ์ทั้งหมด.

ผลิตในอเมริกาด้วย สำหรับทุกคน