ไฟล์ PDF (.pdf)
ISO มาตรฐานPortable Document Format (PDF) คือมาตรฐานเอกสารดิจิทัลที่ใช้กันอย่างแพร่หลาย ออกแบบมาเพื่อแสดงเอกสารได้อย่างสม่ำเสมอโดยไม่ขึ้นอยู่กับซอฟต์แวร์แอปพลิเคชัน ฮาร์ดแวร์ หรือระบบปฏิบัติการ
แปลง PDF เป็น JPG
ตัวแปลงจาก PDF เป็น JPG ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
บีบอัด PDF ออนไลน์
เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PDF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PDF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
25 50 44 46การแสดงผลรูปแบบ ASCII: %PDF
มาตรฐาน: ISO 32000-1 (2008) / ISO 32000-2 (2020)
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | ลำดับชั้นออบเจกต์แบบไฮบริดระหว่างไบนารีกับ ASCII พร้อมตารางอ้างอิงโยง |
| การบีบอัด | FlateDecode (Deflate), DCTDecode (JPEG), CCITT Fax, JBIG2 และ JPXDecode |
| การจัดลำดับไบต์ | Big-Endian (ลำดับไบต์แบบเครือข่าย) สำหรับสตรีมวัตถุไบนารี |
| พื้นที่สี | sRGB, Display P3, DeviceCMYK, ระดับเทา, สีพิเศษ (Pantone) |
| ช่องสัญญาณและโครงสร้าง | เวกเตอร์หลายชั้น การจัดตัวพิมพ์ สตรีมแรสเตอร์ และข้อมูลเมตาที่ฝังอยู่ |
| ขนาดสูงสุด | 200 x 200 นิ้ว (UserUnit อนุญาตให้ขยายได้ถึง 15,000,000 นิ้วใน PDF 1.6 ขึ้นไป) |
| ความโปร่งใส | ความโปร่งใสของอัลฟาเต็มรูปแบบ, โหมดการผสมสี และมาสก์ความทึบแสง |
| การสตรีมและแบบโปรเกรสซีฟ | PDF แบบ Linearized ('Fast Web View') อนุญาตให้สตรีมช่วงไบต์ผ่านคำขอ HTTP Range |
ตารางเปรียบเทียบทางเทคนิค: PDF กับคู่แข่ง
| คุณลักษณะทางเทคนิค | PDF (ปัจจุบัน) | DOCX | EPUB | HTML5 |
|---|---|---|---|---|
| ความเที่ยงตรงของเลย์เอาต์ภาพ | ช่วยรักษาเค้าโครง แต่การแสดงผลขึ้นอยู่กับโปรแกรมอ่านและอุปกรณ์ปลายทาง | อิงตามการไหล; แตกต่างกันไปตามเวอร์ชันของ Word และฟอนต์ที่ติดตั้ง | เลย์เอาต์สำหรับโปรแกรมอ่านที่ปรับการจัดวางข้อความใหม่ได้; ไม่มีการรับประกันรูปแบบตัวอักษรที่ตายตัว | โมเดลกล่อง CSS แบบยืดหยุ่น; การเรนเดอร์ขึ้นอยู่กับหน้าจอ |
| การบรรจุข้อมูลในตัว | สามารถฝังฟอนต์และทรัพยากรรูปภาพได้ แต่เนื้อหาขึ้นอยู่กับเอกสารและการตั้งค่าการสร้าง | คอนเทนเนอร์ XML ในตัว (ฟอนต์ระบบมักจะไม่ถูกฝัง) | คอนเทนเนอร์ ZIP ในตัว (แพ็กเกจแอสเซท XHTML/CSS) | ต้องใช้ทรัพยากร HTTP ภายนอกเว้นแต่จะถูกแพ็กเกจผ่าน MHTML |
| ลายเซ็นดิจิทัลเชิงวิทยาการรหัสลับ | รองรับลายเซ็นดิจิทัลเชิงวิทยาการรหัสลับ PAdES และ X.509 ในข้อกำหนด ISO โดยตรง | รองรับลายเซ็นดิจิทัล Office XML DSig | ต้องใช้ลายเซ็นคอนเทนเนอร์ดิจิทัลแบบกำหนดเอง | ต้องใช้ Web Crypto API หรือการรับประกันการรับส่งข้อมูล TLS ภายนอก |
| การตอบสนองบนมือถือ | ผืนผ้าใบหน้ากระดาษแบบตายตัว (ต้องซูมและเลื่อนบนหน้าจอขนาดเล็ก) | ปรับการจัดเรียงข้อความให้เข้ากับหน้าจอได้ดีเยี่ยม | ออกแบบมาโดยเฉพาะสำหรับการอ่านหนังสืออิเล็กทรอนิกส์บนมือถือแบบปรับการจัดวางได้ | เลย์เอาต์ตอบสนองแบบเนทีฟพร้อม CSS media queries |
| การกำหนดมาตรฐาน | มาตรฐานสากลแบบเปิด (ISO 32000-2:2020) | ECMA-376 / ISO/IEC 29500 | มาตรฐานเปิด W3C / IDPF | มาตรฐานที่ W3C / WHATWG ปรับปรุงอย่างต่อเนื่อง |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
Acrobat หรือโปรแกรมอ่าน PDF รายงานว่า 'ไฟล์เสียหายและไม่สามารถซ่อมแซมได้' หรือเปิดมาว่างเปล่าสนิท
สาเหตุหลัก: การถ่ายโอนผ่าน FTP หรือ HTTP ในโหมด ASCII แปลงลำดับไบต์ไบนารี (แทน 0x0A ด้วย 0x0D 0x0A) จนทำให้ออฟเซ็ตไบต์ในตารางอ้างอิงโยง (xref) เพี้ยน
การกู้คืน: ยูทิลิตีซ่อมแซม PDF สมัยใหม่ (เช่น qpdf --repair หรือการซ่อมแซมของ File2File.app) จะสแกนไฟล์ใหม่แบบเชิงเส้น สร้างพจนานุกรมออบเจกต์ขึ้นใหม่ และสร้างตาราง xref ใหม่
โปรแกรมอ่าน PDF โหลดเอกสารไม่สำเร็จหรือขัดข้องที่หน้าสุดท้าย
สาเหตุหลัก: การดาวน์โหลดที่ถูกตัดทอนหรือการเขียนดิสก์ที่ไม่สมบูรณ์โดยขาดเครื่องหมาย '%%EOF' และพจนานุกรมส่วนท้ายไฟล์
การกู้คืน: ตรวจสอบส่วนท้ายของไฟล์ด้วยคำสั่ง 'tail -c 128 document.pdf' หากไม่มี %%EOF ให้ตรวจสอบว่ามีออบเจกต์แคตตาล็อกรากหรือไม่ และผนวกตาราง xref เทียมที่ชี้ไปยังหมายเลขวัตถุที่ถูกต้องสูงสุด
ฟอนต์ที่ฝังแสดงผลเป็นสัญลักษณ์ที่อ่านไม่ออก, บล็อกว่าง (.notdef) หรือเครื่องหมายคำถาม
สาเหตุหลัก: ฟอนต์ย่อยที่ไม่ได้ฝังซึ่งอ้างถึงฟอนต์ระบบที่ขาดหายไปบนเครื่องที่ใช้ดู หรือตาราง ToUnicode CMap เสียหาย
การกู้คืน: ฝังชุดฟอนต์ย่อยที่ขาดหายไปอีกครั้งผ่าน Ghostscript (gs -o fixed.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true broken.pdf) หรือแปลงองค์ประกอบข้อความให้เป็นเส้นโค้งเวกเตอร์
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
PDF รองรับคุณสมบัติต่าง ๆ เช่น สคริปต์ที่ทำงานได้ ไฟล์ฝัง และสตรีมออบเจ็กต์ที่บีบอัด ซึ่งโปรแกรมอ่านต้องแยกวิเคราะห์และจัดการอย่างปลอดภัย โปรแกรมดู PDF ในเบราว์เซอร์อาจใช้ sandbox เพื่อแยกการประมวลผลเอกสาร
เวกเตอร์การโจมตีที่ทราบ
- JavaScript ของ Acrobat ที่ฝังอยู่ (JS API) ทำการรันโค้ดตามอำเภอใจหรือใช้ประโยชน์จากการฟิชชิงเมื่อเปิดเอกสาร
- การดำเนินการเปิด (/Launch) ที่กำหนดค่าให้เรียกใช้ไบนารีของระบบภายนอกหรือสคริปต์เชลล์
- ช่องโหว่การเรนเดอร์ฟอนต์ในเอนจิ้นการแยกวิเคราะห์ฟอนต์ Type 1 และ TrueType รุ่นเก่า ซึ่งทริกเกอร์บัฟเฟอร์ล้น
- การปลอมแปลงคำขอฝั่งเซิร์ฟเวอร์ (SSRF) และการขโมยข้อมูลรับรองแฮช NTLM ผ่านการดำเนินการ URI ที่เป็นอันตราย (/URI) หรือการส่งแบบฟอร์ม
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ห้ามเปิด PDF ที่ไม่น่าเชื่อถือโดยเปิดใช้งานการรัน Adobe Acrobat JavaScript สำหรับการดูบนเว็บ ให้เรนเดอร์ผ่านเอนจิ้น WebAssembly/PDF.js ที่แซนด์บ็อกซ์ในเบราว์เซอร์เสมอ หรือแปลง PDF ที่ไม่น่าเชื่อถือให้เป็นเอกสาร PDF/A-1b ที่ผ่านการทำความสะอาดข้อมูลแล้ว
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ออกแบบมาเพื่อรักษาเค้าโครงหน้าในระบบต่าง ๆ แต่รูปลักษณ์อาจแตกต่างตามแบบอักษร โปรแกรมอ่าน และการตั้งค่าการพิมพ์
- รองรับลายเซ็นดิจิทัลเชิงวิทยาการรหัสลับ หมายเหตุปิดทับข้อมูล และสิทธิ์การเข้าถึง DRM
- สามารถมีกราฟิกเวกเตอร์ ฟอนต์ และสตรีมแรสเตอร์ที่บีบอัด แต่ไม่ได้ฝังฟอนต์และทรัพยากรอื่นไว้เสมอ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ผืนผ้าใบหน้ากระดาษแบบฟิกซ์เลย์เอาต์ทำให้การปรับขนาดตามหน้าจอสมาร์ทโฟนขนาดเล็กโดยอัตโนมัติทำได้ยาก
- ลำดับชั้นสตรีมออบเจ็กต์ภายในที่ซับซ้อนอาจทำให้ขนาดไฟล์บวมเป่งหากไม่มีการบีบอัดและการกำจัดวัตถุที่ไม่ได้อ้างอิง
- ความสามารถในการรัน JavaScript ที่ฝังอยู่และสิทธิ์การเรียกใช้งานแบบไดนามิกสร้างพื้นผิวการโจมตีที่กว้างขวาง
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- เอกสารโครงการ Camelot ดั้งเดิมจินตนาการถึงการพิมพ์เอกสารทางอิเล็กทรอนิกส์จากแอปพลิเคชันใดก็ได้โดยตรงไปยังจอแสดงผลใดก็ได้
- ไฟล์ PDF ทุกไฟล์ลงท้ายด้วยสตริง '%%EOF' พอดี เพื่อระบุส่วนท้ายไฟล์
- ศาลและองค์กรจดหมายเหตุบางแห่งระบุให้ใช้ PDF/A สำหรับเวิร์กโฟลว์การเก็บรักษา ข้อกำหนดแตกต่างกันตามเขตอำนาจและสถาบัน
คำถามทางเทคนิคที่พบบ่อย
เหตุใดหน้า PDF จึงอาจดูคล้ายกันบนหน้าจอและเครื่องพิมพ์ต่าง ๆ
PDF บันทึกเนื้อหาหน้าด้วยพิกัดคงที่ จึงช่วยรักษาเค้าโครงไว้ได้ อย่างไรก็ตาม รูปลักษณ์อาจแตกต่างตามแบบอักษร โปรแกรมอ่าน การจัดการสี และการตั้งค่าเครื่องพิมพ์
ความแตกต่างระหว่าง PDF มาตรฐานและ PDF/A คืออะไร?
PDF/A (ISO 19005) คือชุดย่อยพิเศษที่ออกแบบมาสำหรับการจัดเก็บถาวรระยะยาว โดยจะห้ามฟีเจอร์ที่อาจบั่นทอนความสามารถในการอ่านในอนาคตอย่างเคร่งครัด เช่น JavaScript, การเชื่อมโยงฟอนต์ภายนอก, การเข้ารหัส, การฝังเสียง/วิดีโอ และพื้นที่สีที่ขึ้นอยู่กับอุปกรณ์ ฟอนต์และโปรไฟล์สีทั้งหมดต้องถูกฝัง 100%
การบีบอัด PDF ทำงานอย่างไรในเอกสารสมัยใหม่?
PDF ใช้ฟิลเตอร์บีบอัดแบบแยกส่วนหลายตัวที่ปรับแต่งให้เหมาะกับประเภทเนื้อหา ข้อความ คำสั่งเวกเตอร์ และเมตริกฟอนต์จะถูกบีบอัดโดยใช้ FlateDecode (zlib/deflate) ภาพถ่ายใช้ DCTDecode (JPEG) หรือ JPXDecode (JPEG 2000) ในขณะที่ข้อความสแกนแบบขาวดำระดับเดียวใช้การบีบอัด JBIG2 หรือ CCITT Fax Group 4
เหตุใดไฟล์ PDF จึงมักมีขนาดใหญ่แม้ว่าจะลบหน้าหรือรูปภาพออกแล้วก็ตาม?
เมื่อแก้ไข PDF โปรแกรมแก้ไขจำนวนมากจะทำ 'การอัปเดตแบบเพิ่มส่วน' (incremental update) - โดยผนวกสตรีมออบเจ็กต์ใหม่และตาราง xref ใหม่ไว้ท้ายไฟล์ โดยไม่ลบออบเจ็กต์เดิม เพื่อให้เลิกทำได้อย่างรวดเร็ว หากต้องการลดขนาดไฟล์จริง เอกสารต้องผ่านขั้นตอนปรับแต่งเพื่อเก็บกวาดออบเจ็กต์ที่ไม่มีการอ้างอิง
คู่การแปลงไฟล์ PDF ที่เกี่ยวข้อง
แปลงแต่ละหน้าของ PDF เป็นภาพ JPG ที่โพสต์ ส่งในแชต หรือแทรกในสไลด์ได้ แต่ละหน้าจะแสดงผลที่ 150 dpi และหาก PDF มีหลายหน้า คุณจะได้ไฟล์ ZIP ที่มี JPG หน้าละหนึ่งไฟล์
บันทึกแต่ละหน้าของ PDF เป็นภาพ PNG แบบไม่สูญเสียคุณภาพ ซึ่งคมชัดพอสำหรับข้อความ ตาราง และแผนภาพ เรนเดอร์หน้าที่ 150 dpi และหาก PDF มีหลายหน้า คุณจะได้รับไฟล์ ZIP ที่มี PNG หนึ่งไฟล์ต่อหน้า
แชร์ภาพหน้าจอหรือแผนภาพ PNG เป็น PDF หนึ่งหน้า โดยคงพิกเซลและความโปร่งใสไว้ครบถ้วน หน้า PDF เป็นภาพคงที่ ไม่ใช่ไฟล์ PNG ที่แก้ไขได้
วางภาพถ่าย JPEG บนหน้า PDF หนึ่งหน้าเพื่อใช้ตรวจทานหรือพิมพ์ ข้อมูลภาพเดิมจะถูกฝังไว้ แต่ PDF ไม่มีเครื่องมือสำหรับแก้ไขภาพถ่าย
สร้าง PDF หนึ่งหน้าจากกราฟิก WebP สำหรับใช้ในเอกสารหรือรอบการอนุมัติ เบราว์เซอร์จะวาดกราฟิกนั้นใหม่เป็นรูปภาพ จึงไม่เก็บข้อมูล WebP หรือภาพเคลื่อนไหวไว้
แชร์โลโก้หรือภาพประกอบ SVG ในรูปแบบ PDF หนึ่งหน้า เส้นพาธที่ปรับขนาดได้จะกลายเป็นภาพที่มีความละเอียดคงที่ จึงไม่สามารถกู้รายละเอียดเวกเตอร์กลับคืนได้เมื่อซูม
แปลงภาพถ่าย HEIC แบบภาพนิ่งเป็น PDF หนึ่งหน้าเพื่อแชร์หรือใช้กับแบบฟอร์ม หน้าดังกล่าวใช้ข้อมูลภาพ 8 บิต และไม่รวมลำดับภาพ HEIC หรือข้อมูลต้นฉบับ HDR
วางภาพเว็บ AVIF ลงบนหน้า PDF หน้าเดียวเพื่อให้ตรวจทานแคมเปญ ภาพจะถูกวาดลงบนพื้นที่วาดภาพมาตรฐาน จึงสูญเสียข้อมูลการเข้ารหัส AVIF และข้อมูลเสริม HDR