ข้ามไปยังเนื้อหา
getnextpdf.com

ประวัติโดยย่อของ PDF

Spec: ISO 32000-1

PDF เริ่มต้นจากบันทึกเกี่ยวกับความหงุดหงิดอย่างหนึ่ง คุณพิมพ์เอกสารที่ไหนก็ได้ แต่คุณ ส่ง เอกสารอย่างเชื่อถือได้ไม่ได้ หน้านี้คือเรื่องราวสั้นๆ ว่าปัญหานั้นกลายมาเป็นหนึ่งในรูปแบบเอกสารที่ถูกใช้อย่างแพร่หลายที่สุดในโลกได้อย่างไร — จากผลพลอยได้ของ PostScript ในปี 1993 ไปจนถึงมาตรฐาน ISO ที่ฉบับล่าสุดไม่มีชื่อ Adobe กำกับอีกต่อไป

ประวัติศาสตร์ในที่นี้ไม่ใช่ความรู้สึกถวิลหาอดีต PDF ที่คุณสร้างวันนี้เต็มไปด้วยการตัดสินใจที่ทำขึ้นเมื่อหลายสิบปีก่อน และส่วนใหญ่ยังคงเป็นโครงสร้างหลักอยู่ ออบเจกต์หมายเลขศูนย์เป็นหัวของ free-list ที่มี generation 65535 เพราะการออกแบบในปี 1993 กำหนดไว้เช่นนั้น หน้ากระดาษอธิบายตัวเองด้วยตัวดำเนินการวาดที่สืบทอดจาก PostScript เพราะรูปแบบนี้เติบโตมาจากภาษาสำหรับการพิมพ์ การรู้ว่ากฎข้อหนึ่งมาจากไหน มักเป็นวิธีที่เร็วที่สุดในการเข้าใจว่าทำไมจึงเพิกเฉยต่อมันเฉยๆ ไม่ได้

อีกเหตุผลหนึ่งคือมุมมอง “PDF 2.0” ฟังดูเหมือนการประดิษฐ์ใหม่ที่สะอาดหมดจด แต่มันไม่ใช่ มันคือชั้นล่าสุดบนตะกอนสามสิบปี และการอ่านมันในฐานะความต่อเนื่องแทนที่จะเป็นการรีบูตคือสิ่งที่ทำให้คุณคาดการณ์ได้ว่ามันจะทำงานอย่างไร

  • PDF สืบทอดจาก PostScript ซึ่งเป็นภาษาอธิบายหน้ากระดาษของ Adobe มันเก็บ โมเดลการวาดไว้และทิ้งภาษาโปรแกรมเต็มรูปแบบไป
  • บันทึกภายในชื่อ “Camelot” ปี 1991 ของ John Warnock วางกรอบเป้าหมายไว้ว่า เป็นไฟล์ที่ใครก็เปิดได้และดูเหมือนกันทุกที่
  • PDF 1.0 ออกมาในปี 1993 พร้อมกับ Acrobat มันเป็นผลิตภัณฑ์เฉพาะกลุ่มที่มี ค่าใช้จ่ายก่อนที่จะกลายเป็นค่าเริ่มต้น
  • เวอร์ชัน 1.1 ถึง 1.7 เพิ่มสิ่งที่ทำให้มันขาดไม่ได้ — ลิงก์ การเข้ารหัส การ บีบอัด ฟอร์ม ความโปร่งใส การติดแท็ก ลายเซ็นดิจิทัล — ทีละข้อกำหนด
  • ในปี 2008 PDF 1.7 กลายเป็น ISO 32000-1 รูปแบบนี้เลิกเป็นของ Adobe และ กลายเป็นมาตรฐานสากลแบบเปิด
  • PDF 2.0 คือ ISO 32000-2 ฉบับแรกที่เขียนขึ้นและเป็นเจ้าของทั้งหมดภายใน ISO มันรวบรวม กระชับ และตัดออกมากกว่าจะประดิษฐ์ใหม่

NextPDF ถือว่าสายเลือดนี้เป็นข้อจำกัดจริง ไม่ใช่เพียงเรื่องราวเบื้องหลัง มันเป็นเอนจิน PDF 2.0 โดยปริยาย แต่รูปทรงเก่าๆ ของรูปแบบนี้ก็เข้าถึงได้โดยตั้งใจ เพราะมาตรฐานที่สร้างขึ้นบน PDF ยังคงต้องการมัน

จุดแตกหักที่ชี้ขาดในไทม์ไลน์คือ 2008 ก่อนหน้านั้น “PDF” หมายถึง “อะไรก็ตามที่ข้อกำหนดล่าสุดของ Adobe ระบุ” หลังจากนั้น PDF เป็นมาตรฐาน ISO (Spec: ISO 32000-1) ซึ่งเป็นเหตุผลตรงๆ ที่เอนจินอิสระอย่างตัวนี้สามารถมีอยู่ได้และอ้างความสอดคล้องกับเอกสารสาธารณะแทนที่จะเทียบกับผลิตภัณฑ์ของผู้ขาย เบสไลน์ปัจจุบันคือ PDF 2.0 (Spec: ISO 32000-2, Introduction) ฉบับแรกที่เขียนขึ้นทั้งหมดภายใน ISO

ประวัติศาสตร์นั้นอธิบายทางเลือกการออกแบบที่เงียบแต่สำคัญในเอนจิน นั่นคือ เวอร์ชัน ของ PDF เป็นการตัดสินใจโดยเจตนา ไม่เคยเป็นความบังเอิญ NextPDF ตั้งค่าเริ่มต้นให้เขียนโครงสร้าง 2.0 แต่ก็ยัง serialize รูปทรงไฟล์ 1.7 และ 1.4 ที่เก่ากว่าได้ — ไม่ใช่เพราะความรู้สึก แต่เพราะโปรไฟล์ความสอดคล้องอย่าง PDF/A ถูกนิยามขึ้นเทียบกับโครงสร้างก่อนหน้าเหล่านั้นและยังคงเรียกร้องมันต่อไป อดีตไม่ได้ถูกเลิกใช้ มันเป็นเป้าหมายเอาต์พุตที่รองรับ

  1. PostScript (1984)Adobe ships a page-description language for laser printers — the drawing model the PDF inherits.
  2. Camelot memo (1991)John Warnock proposes a portable file anyone can open and that aims to render the same way everywhere.
  3. PDF 1.0 with Acrobat (1993)The format ships as a paid product. Adoption is slow; the readers and tools cost money.
  4. PDF 1.1 to 1.7 (1996 to 2006)Links, encryption, compression, forms, transparency, tagging, and signatures arrive one version at a time.
  5. ISO 32000-1 (2008)PDF 1.7 is adopted by ISO. The format becomes an open standard, no longer Adobe-owned.
  6. ISO 32000-2 / PDF 2.0 (2017, rev. 2020)The first ISO-authored edition: consolidation, tightening, and the baseline NextPDF writes by default.
The PDF's version lineage as a timeline: a PostScript spin-off becomes a paid product, accretes features across the 1.x line, is handed to ISO in 2008, and arrives at the ISO-owned 2.0 baseline NextPDF targets.

มีรายละเอียดบางอย่างในไทม์ไลน์นั้นที่ควรพิจารณาให้ถ้วนถี่ เพราะมันอธิบายลักษณะนิสัยของรูปแบบนี้

มันมาจากภาษาสำหรับการพิมพ์ PostScript วาดอะไรก็ได้ที่เครื่องพิมพ์ทำได้ แต่มันเป็นภาษาโปรแกรมเต็มรูปแบบ — ไฟล์ PostScript วนซ้ำตลอดไปได้ PDF เก็บระบบพิกัดและตัวดำเนินการกราฟิกของ PostScript ไว้และทิ้งความสามารถในการเขียนโปรแกรมไป สิ่งที่เหลืออยู่คือ คำอธิบายแบบสถิต ของหน้ากระดาษที่เสร็จสมบูรณ์ ที่คาดการณ์ได้ มีขอบเขต และเรนเดอร์ได้อย่างปลอดภัย การแลกเปลี่ยนนั้นคือเหตุผลที่หน้า PDF ดูเหมือนกันบนตัวอ่านทุกตัว และเหตุผลที่มันไม่ใช่แอปพลิเคชันจิ๋วอย่างที่ไฟล์ PostScript เป็นโดยพฤตินัย

การเปิดให้อ่านทางอิเล็กทรอนิกส์ได้ฟรีคือจุดเปลี่ยน PDF 1.0 เป็นผลิตภัณฑ์เชิงพาณิชย์ และเป็นเวลาหลายปีที่รูปแบบนี้เป็นเพียงของแปลกที่มีค่าใช้จ่าย ความก้าวกระโดดคือการทำให้ ตัวอ่าน ฟรีในขณะที่เครื่องมือสำหรับการสร้างยังคงมีค่าใช้จ่าย รูปแบบที่ฝ่ายเดียวต้องลงทุนซื้อ คือรูปแบบที่ทุกคนรับได้ เมื่อข้อกำหนดมาถึง 1.7 PDF ก็กลายเป็นวิธีเริ่มต้นในการส่งเอกสารที่ต้องไม่เปลี่ยนแปลงระหว่างการส่งไปแล้ว

ปี 2008 เปลี่ยนว่าใครเป็นเจ้าของกฎ การส่งมอบ PDF 1.7 ให้ ISO เปลี่ยนข้อกำหนดของผู้ขายให้กลายเป็นมาตรฐานสากล นั่นคือจังหวะที่เอนจินอิสระซึ่งสอดคล้องมาตรฐานเป็นไปได้เลย — มีเอกสารสาธารณะให้สร้างตาม พร้อมมาตราสาธารณะสำหรับทุกพฤติกรรม

คุณอ่านเรื่องราวทั้งหมดได้จากบรรทัดแรกของไฟล์ ส่วนหัวคือเครื่องหมายระบุเวอร์ชัน และเป็นสัญญาที่เก่าแก่และเรียบง่ายที่สุดในรูปแบบนี้ — มีอยู่ในปี 1993 และไม่เปลี่ยนรูปทรงมาจนถึงทุกวันนี้

%PDF-1.0 ← 1993, Acrobat 1.0
%PDF-1.4 ← 2001, transparency and the basis for PDF/A-1
%PDF-1.7 ← 2006, the version ISO adopted as 32000-1 in 2008
%PDF-2.0 ← ISO 32000-2, the first ISO-authored edition

แปดไบต์เดียวกัน ห่างกันคนละรุ่น ตัวอ่านสมัยใหม่เปิดได้ทั้งสี่ เพราะรูปแบบนี้ถูกออกแบบให้ตัวอ่านที่เก่ากว่าเพิกเฉยต่อสิ่งที่มันไม่เข้าใจได้ ขณะที่ตัวที่ใหม่กว่ายังคงเข้ากันได้กับสิ่งที่มีมาก่อน ในทางปฏิบัติ ตัวอ่านที่เก่ากว่าอาจเรนเดอร์ฟีเจอร์ที่ไม่รู้จักอย่างไม่ถูกต้องแทน ดังนั้นการรับประกันจึงเป็นเจตนาการออกแบบ ไม่ใช่สิ่งที่แน่นอนสัมบูรณ์ NextPDF เขียนอันสุดท้ายในรายการนี้โดยปริยาย และเขียนอันอื่นได้เมื่อโปรไฟล์ความสอดคล้องร้องขอ

กับดักคือการอ่านหมายเลขเวอร์ชันในฐานะเรื่องราวของการประดิษฐ์ใหม่อย่างยิ่งใหญ่ — ราวกับว่า PDF 2.0 เป็นต่อ PDF 1.7 อย่างที่ภาคต่อเป็นต่อภาพยนตร์ มันใกล้เคียงกับฉบับใหม่ที่จัดทำอย่างประณีตของหนังสืออ้างอิงเล่มยาวเสียมากกว่า โมเดลออบเจกต์ ตารางอ้างอิงข้าม และ trailer ที่ไฟล์ปี 1993 ใช้ คือกลไกเดียวกันอย่างชัดเจนกับที่ไฟล์ 2.0 ใช้ ส่วนใหญ่ของสิ่งที่เปลี่ยนไปตลอดสามสิบปีคือการ เพิ่มเข้ามาเคียงข้าง การออกแบบเดิม ไม่ใช่การฉีกออกแล้วแทนที่ รูปแบบนี้อนุรักษ์นิยมอย่างผิดปกติ และความอนุรักษ์นิยมนั้นคือประเด็นทั้งหมด ไฟล์ที่เขียนวันนี้ควรยังเปิดได้ในอีกสิบปี และไฟล์ที่เขียนเมื่อสิบปีก่อนควรยังเปิดได้วันนี้

ความเข้าใจผิดข้อที่สองคือ “ISO 32000-2 คือข้อกำหนดของ Adobe ที่เปลี่ยนปกใหม่” สองฉบับ ISO นี้แตกต่างกันจริงในแง่ของผู้จัดทำ PDF 2.0 เป็นฉบับแรกที่ผลิตขึ้นภายในกระบวนการของ ISO แทนที่จะตีพิมพ์โดย Adobe แล้วให้สัตยาบันภายหลัง ซึ่งเป็นส่วนหนึ่งของเหตุผลที่มันอ่านได้เหมือนการรวบรวมกฎที่สั่งสมมาหลายสิบปี มากกว่าการประกาศฟีเจอร์ของผู้ขาย

หน้านี้เป็นการปูพื้นเชิงเล่าเรื่อง ไม่ใช่บันทึกการเปลี่ยนแปลงที่แม่นยำ วันที่ระบุไว้เป็นรายปี และ “1.1 ถึง 1.7” บีบอัดข้อกำหนดที่ค่อยๆ เพิ่มขึ้นกว่าทศวรรษให้เหลือบรรทัดเดียวโดยตั้งใจ หากคุณต้องการความแตกต่างระดับมาตราที่แม่นยำระหว่างฉบับต่างๆ นั่นเป็นเอกสารคนละชิ้น

Historical PDF versions as an output target — edition availability
EditionAvailability
Core

Core writes PDF 2.0 by default and can serialize the older 1.7 and 1.4 file structures when a profile requires them. It is a writer of these versions, not a museum: it does not promise to read, repair, or faithfully reconstruct an arbitrary legacy file produced by another tool decades ago.

ProAvailable
EnterpriseAvailable

NextPDF เป็นเอนจิน PDF 2.0 ที่เคารพสายเลือดของตน มันไม่ใช่นักประวัติศาสตร์สากลของ PDF ทุกไฟล์ที่เคยสร้างมา พฤติกรรมในที่นี้อธิบายไฟล์ที่มัน เขียน ซึ่งยึดโยงกับฉบับที่มันมุ่งสู่ ส่วนไฟล์เหล่านั้นมีโครงสร้างภายในอย่างไร และ 2.0 เปลี่ยนอะไรไปบ้างโดยเฉพาะ มีอธิบายในหน้าด้านล่าง

PDF อ่านได้ฟรีมาตลอดหรือไม่ ไม่ ตัวอ่านกลายเป็นของฟรีค่อนข้างเร็ว แต่ PDF 1.0 ออกมาในฐานะผลิตภัณฑ์ที่มีค่าใช้จ่าย อ่านฟรีสร้างมีค่าใช้จ่ายคือโมเดลที่ทำให้รูปแบบนี้แพร่หลายไปทั่ว

PDF 2.0 ทำลายความเข้ากันได้กับไฟล์เก่าหรือไม่ ส่วนใหญ่ไม่ โครงสร้างที่ใช้ร่วมกันไม่เปลี่ยนแปลง และฟีเจอร์ใหม่ถูกออกแบบให้ตัวอ่านที่เก่ากว่าเพิกเฉยต่อสิ่งที่มันไม่รู้จักได้ ฟีเจอร์ที่มีเฉพาะใน 2.0 โดยทั่วไปจะไม่ถูกตัวอ่าน 1.7 ปฏิบัติตาม ซึ่งอาจข้ามมันไป หรือขึ้นอยู่กับฟีเจอร์และตัวอ่านอาจถอยกลับไปอย่างไม่สมบูรณ์

ทำไม NextPDF ถึงยังเขียนโครงสร้างเก่าอยู่เลย เพราะโปรไฟล์ความสอดคล้องที่สร้างขึ้นบน PDF — โดยเฉพาะ PDF/A บางระดับ — ถูกนิยามขึ้นเทียบกับรูปทรงไฟล์ที่เก่ากว่าและต้องการมัน อดีตคือเป้าหมายเอาต์พุตที่รองรับ ไม่ใช่เป้าหมายที่ถูกเลิกใช้

  • PostScript — ภาษาอธิบายหน้ากระดาษสำหรับเครื่องพิมพ์ของ Adobe ปี 1984 ซึ่ง เป็นภาษาโปรแกรมเต็มรูปแบบ PDF สืบทอดโมเดลการวาดของมันแต่ทิ้งความสามารถในการ เขียนโปรแกรมไป
  • Camelot — ชื่อโครงการภายในจากบันทึกปี 1991 ของ John Warnock สำหรับความ พยายามที่กลายมาเป็น PDF
  • PDF 1.0 — ข้อกำหนด PDF ฉบับแรกที่ตีพิมพ์ ออกมาพร้อม Acrobat ในปี 1993
  • ISO 32000-1 — การที่ ISO รับ PDF 1.7 มาใช้ในปี 2008 ครั้งแรกที่รูปแบบนี้ กลายเป็นมาตรฐานสากลแบบเปิด
  • ISO 32000-2 (PDF 2.0) — ฉบับ PDF แรกที่เขียนขึ้นและเป็นเจ้าของทั้งหมด ภายใน ISO แทนที่จะตีพิมพ์โดย Adobe
  • Conformance profile — มาตรฐานที่เข้มงวดกว่าซึ่งซ้อนทับบน PDF พื้นฐาน (เช่น PDF/A สำหรับการเก็บถาวร) มักนิยามขึ้นเทียบกับโครงสร้างไฟล์ที่เจาะจง บางครั้งเก่ากว่า