Lược sử PDF
Spec: ISO 32000-1ISO 32000-1ISO 32000-2
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”PDF khởi đầu như một bản ghi nhớ về một nỗi bực bội: bạn có thể in một tài liệu ở bất cứ đâu, nhưng bạn không thể gửi một cái một cách đáng tin cậy. Trang này là câu chuyện ngắn về việc vấn đề đó đã biến thành một trong những định dạng tài liệu được dùng rộng rãi nhất thế giới như thế nào — từ một sản phẩm tách ra từ PostScript năm 1993 đến một chuẩn ISO mà phiên bản mới nhất không còn mang tên Adobe.
Vì sao điều này quan trọng
Phần tiêu đề “Vì sao điều này quan trọng”Lịch sử ở đây không phải hoài niệm. Tài liệu PDF bạn tạo ra hôm nay đầy những quyết
định được đưa ra từ nhiều thập kỷ trước, và phần lớn trong số đó vẫn là cấu trúc
chịu lực. Đối tượng số không là một đầu danh sách trống với generation 65535 vì
một thiết kế năm 1993 đã quy định như vậy. Các trang tự mô tả mình bằng các toán tử
vẽ kế thừa từ PostScript vì định dạng này lớn lên từ một ngôn ngữ in ấn. Biết một
quy tắc đến từ đâu thường là cách nhanh nhất để hiểu vì sao không thể đơn giản phớt
lờ nó.
Lý do còn lại là góc nhìn. “PDF 2.0” nghe có vẻ như một cuộc tái phát minh sạch sẽ. Không phải vậy. Nó là lớp mới nhất trên một trầm tích ba mươi năm, và đọc nó như một sự tiếp nối thay vì một sự khởi động lại mới là điều cho phép bạn dự đoán cách nó hành xử.
Phiên bản ngắn gọn
Phần tiêu đề “Phiên bản ngắn gọn”- PDF kế thừa từ PostScript, ngôn ngữ mô tả trang của Adobe. Nó giữ lại mô hình vẽ và bỏ đi toàn bộ ngôn ngữ lập trình.
- Bản ghi nhớ nội bộ “Camelot” năm 1991 của John Warnock đã định hình mục tiêu: một tập tin mà bất cứ ai cũng mở được và trông giống nhau ở mọi nơi.
- PDF 1.0 ra mắt năm 1993 cùng Acrobat. Nó là một sản phẩm trả phí, ngách trước khi trở thành mặc định.
- Các phiên bản 1.1 đến 1.7 thêm những thứ khiến nó trở nên không thể thiếu — liên kết, mã hóa, nén, biểu mẫu, độ trong suốt, gắn thẻ, chữ ký số — mỗi lần một đặc tả.
- Năm 2008, PDF 1.7 trở thành ISO 32000-1: định dạng thôi không còn là của Adobe và trở thành một chuẩn quốc tế mở.
- PDF 2.0 là ISO 32000-2, phiên bản đầu tiên được viết và sở hữu hoàn toàn bên trong ISO. Nó hợp nhất, siết chặt, và loại bỏ nhiều hơn là tái phát minh.
Cách NextPDF tiếp cận vấn đề
Phần tiêu đề “Cách NextPDF tiếp cận vấn đề”NextPDF coi dòng dõi này là một ràng buộc thực sự, không phải một câu chuyện nền. Nó là một engine PDF 2.0 theo mặc định, nhưng các hình hài cũ hơn của định dạng vẫn có thể chạm tới một cách có chủ đích, vì các chuẩn được xây dựng trên nền PDF vẫn đòi hỏi chúng.
Bước ngoặt quyết định trong dòng thời gian là 2008. Trước nó, “PDF” có nghĩa là “bất cứ thứ gì đặc tả mới nhất của Adobe nói.” Sau nó, PDF là một chuẩn ISO (Spec: ISO 32000-1ISO 32000-1), đó chính xác là lý do một engine độc lập như engine này có thể tồn tại và tuyên bố tuân thủ theo một văn bản công khai thay vì theo sản phẩm của một nhà cung cấp. Baseline hiện hành là PDF 2.0 (Spec: ISO 32000-2, IntroductionISO 32000-2 Introduction), phiên bản đầu tiên được biên soạn hoàn toàn bên trong ISO.
Lịch sử đó giải thích một lựa chọn thiết kế kín đáo nhưng quan trọng trong engine: phiên bản PDF là một quyết định có chủ đích, không bao giờ là một sự tình cờ. NextPDF mặc định ghi cấu trúc 2.0, nhưng nó vẫn có thể serialize các hình hài tập tin 1.7 và 1.4 cũ hơn — không vì tình cảm, mà vì các hồ sơ tuân thủ như PDF/A đã được định nghĩa theo những cấu trúc cũ hơn đó và vẫn tiếp tục đòi hỏi chúng. Quá khứ không bị phế bỏ. Nó là một đích đầu ra được hỗ trợ.
- PostScript (1984)Adobe ships a page-description language for laser printers — the drawing model the PDF inherits.
- Camelot memo (1991)John Warnock proposes a portable file anyone can open and that aims to render the same way everywhere.
- PDF 1.0 with Acrobat (1993)The format ships as a paid product. Adoption is slow; the readers and tools cost money.
- PDF 1.1 to 1.7 (1996 to 2006)Links, encryption, compression, forms, transparency, tagging, and signatures arrive one version at a time.
- ISO 32000-1 (2008)PDF 1.7 is adopted by ISO. The format becomes an open standard, no longer Adobe-owned.
- ISO 32000-2 / PDF 2.0 (2017, rev. 2020)The first ISO-authored edition: consolidation, tightening, and the baseline NextPDF writes by default.
Một vài chi tiết trong dòng thời gian đó đáng để dừng lại ngẫm nghĩ, vì chúng giải thích tính cách của định dạng.
Nó đến từ một ngôn ngữ in ấn. PostScript có thể vẽ bất cứ thứ gì một máy in vẽ được, nhưng nó là một ngôn ngữ lập trình đầy đủ — một tập tin PostScript có thể lặp mãi mãi. PDF giữ lại hệ tọa độ và các toán tử đồ họa của PostScript và vứt bỏ khả năng lập trình. Cái còn lại là một mô tả tĩnh của một trang đã hoàn thiện: dự đoán được, có giới hạn, và an toàn để render. Sự đánh đổi đó là lý do một trang PDF trông giống nhau trên mọi trình đọc, và là lý do nó không phải là một ứng dụng tí hon theo cách một tập tin PostScript thực chất là vậy.
Việc áp dụng điện tử miễn phí là một bước ngoặt. PDF 1.0 là một sản phẩm thương mại, và trong nhiều năm định dạng này là một thứ trả phí gây tò mò. Đột phá là việc làm cho trình đọc miễn phí trong khi các công cụ biên soạn vẫn trả phí. Một định dạng mà chỉ một bên phải bỏ tiền là một định dạng mà mọi người đều có thể nhận. Đến khi đặc tả đạt mức 1.7, PDF đã là cách mặc định để gửi một tài liệu không được phép thay đổi trên đường truyền.
Năm 2008 thay đổi ai sở hữu các quy tắc. Việc giao PDF 1.7 cho ISO đã biến một đặc tả của nhà cung cấp thành một chuẩn quốc tế. Đó là thời điểm một engine độc lập, tuân thủ trở nên khả thi ngay từ đầu — có một văn bản công khai để xây dựng dựa trên, với một điều khoản công khai cho mỗi hành vi.
Ví dụ thực tế
Phần tiêu đề “Ví dụ thực tế”Bạn có thể đọc toàn bộ cung lịch sử trong dòng đầu tiên của một tập tin. Phần header là một dấu phiên bản, và nó là hợp đồng cũ nhất, đơn giản nhất trong định dạng — hiện diện năm 1993 và không đổi hình hài cho đến hôm nay.
%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 editionCùng tám byte đó, cách nhau một thế hệ. Một trình đọc hiện đại có thể mở cả bốn, vì định dạng được thiết kế sao cho một trình đọc cũ hơn có thể bỏ qua những gì nó không hiểu trong khi một trình đọc mới hơn vẫn tương thích với những gì có trước. Trên thực tế một trình đọc cũ hơn có thể thay vào đó render sai một tính năng không biết, nên sự bảo đảm này là một ý định thiết kế, không phải một điều tuyệt đối. NextPDF mặc định ghi cái cuối cùng trong số này, và có thể ghi những cái khác khi một hồ sơ tuân thủ đòi hỏi chúng.
Hiểu lầm thường gặp
Phần tiêu đề “Hiểu lầm thường gặp”Cái bẫy là đọc các con số phiên bản như một câu chuyện về sự tái phát minh kịch tính — như thể PDF 2.0 đối với PDF 1.7 cũng như một phần tiếp theo đối với một bộ phim. Nó gần hơn với một ấn bản mới cẩn thận của một cuốn sách tham khảo dài. Mô hình đối tượng, bảng tham chiếu chéo, và trailer mà một tập tin năm 1993 đã dùng có thể nhận ra là cùng một bộ máy mà một tập tin 2.0 dùng. Phần lớn những gì thay đổi qua ba mươi năm là được thêm vào bên cạnh thiết kế gốc, chứ không phải bị giật ra và thay thế. Định dạng này bảo thủ một cách khác thường, và sự bảo thủ đó chính là toàn bộ điểm mấu chốt: một tập tin viết hôm nay vẫn nên mở được trong một thập kỷ, và một tập tin viết một thập kỷ trước vẫn nên mở được hôm nay.
Một hiểu lầm thứ hai là “ISO 32000-2 là đặc tả của Adobe với một cái bìa mới.” Hai ấn bản ISO khác nhau thực sự về quyền tác giả. PDF 2.0 là phiên bản đầu tiên được sản xuất bên trong quy trình của ISO chứ không phải do Adobe xuất bản rồi phê chuẩn sau đó, đó là một phần lý do nó đọc lên như một sự hợp nhất của hàng thập kỷ quy tắc tích lũy chứ không phải một thông báo tính năng của nhà cung cấp.
Giới hạn và ranh giới
Phần tiêu đề “Giới hạn và ranh giới”Trang này là một sự định hướng theo lối kể chuyện, không phải một bản changelog chính xác. Các mốc thời gian được nêu đến năm, và “1.1 đến 1.7” cố ý nén hơn một thập kỷ các đặc tả tăng dần vào một dòng. Nếu bạn cần chính xác các khác biệt ở mức điều khoản giữa các ấn bản, đó là một tài liệu khác.
| Edition | Availability |
|---|---|
| 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. |
| Pro | Available |
| Enterprise | Available |
NextPDF là một engine PDF 2.0 tôn trọng dòng dõi của mình; nó không phải một nhà sử học phổ quát của mọi PDF từng được tạo ra. Hành vi ở đây mô tả các tập tin nó ghi ra, neo vào các ấn bản nó nhắm tới. Cách các tập tin đó được cấu trúc nội bộ, và 2.0 cụ thể đã thay đổi điều gì, được trình bày trên các trang bên dưới.
Mini-FAQ
Phần tiêu đề “Mini-FAQ”PDF có luôn miễn phí để đọc không? Không. Trình đọc trở nên miễn phí tương đối sớm, nhưng PDF 1.0 ra mắt như một sản phẩm trả phí. Đọc miễn phí, biên soạn trả phí, là mô hình đã khiến định dạng này trở nên phổ biến khắp nơi.
PDF 2.0 có phá vỡ khả năng tương thích với các tập tin cũ hơn không? Phần lớn là không. Cấu trúc dùng chung không thay đổi, và các tính năng mới được thiết kế sao cho một trình đọc cũ hơn có thể bỏ qua những gì nó không nhận ra. Một tính năng chỉ có ở 2.0 thường sẽ không được một trình đọc 1.7 tôn trọng, trình đọc đó có thể bỏ qua nó hoặc, tùy vào tính năng và trình đọc, dự phòng không hoàn hảo.
Vì sao NextPDF vẫn ghi cấu trúc cũ? Vì các hồ sơ tuân thủ được xây dựng trên nền PDF — đáng kể là một số mức PDF/A — đã được định nghĩa theo các hình hài tập tin cũ hơn và đòi hỏi chúng. Quá khứ là một đích đầu ra được hỗ trợ, không phải một đích bị phế bỏ.
Tài liệu liên quan
Phần tiêu đề “Tài liệu liên quan”- PDF thực sự là gì — mô hình đối tượng, bảng tham chiếu chéo, và trailer mà lịch sử này sản sinh ra.
- PDF 2.0: điều gì đã thay đổi — các khác biệt ở mức điều khoản giữa 1.7 và baseline 2.0.
- Bối cảnh các chuẩn — nơi ISO 32000 đứng giữa liên minh rộng lớn hơn các chuẩn mà NextPDF theo dõi.
- Lưu trữ và PDF/A — vì sao các hình hài tập tin cũ hơn từ lịch sử này vẫn là các đích đầu ra bắt buộc.
Thuật ngữ
Phần tiêu đề “Thuật ngữ”- PostScript — ngôn ngữ mô tả trang năm 1984 của Adobe cho máy in; một ngôn ngữ lập trình đầy đủ. PDF kế thừa mô hình vẽ của nó nhưng bỏ đi khả năng lập trình.
- Camelot — tên dự án nội bộ, từ bản ghi nhớ năm 1991 của John Warnock, cho nỗ lực đã trở thành PDF.
- PDF 1.0 — đặc tả PDF đầu tiên được xuất bản, ra mắt cùng Acrobat năm 1993.
- ISO 32000-1 — sự ISO hóa năm 2008 của PDF 1.7; lần đầu tiên định dạng trở thành một chuẩn quốc tế mở.
- ISO 32000-2 (PDF 2.0) — phiên bản PDF đầu tiên được biên soạn và sở hữu hoàn toàn bên trong ISO chứ không phải do Adobe xuất bản.
- Hồ sơ tuân thủ — một chuẩn nghiêm ngặt hơn được xếp lớp trên nền PDF (chẳng hạn như PDF/A cho lưu trữ), thường được định nghĩa theo một cấu trúc tập tin cụ thể, đôi khi cũ hơn.