PDF

application/x-pdf
application/x-bzpdf
application/x-gzpdf
}}
| _nomimecode = true
| uniform type = com.adobe.pdf
| magic = %PDF
| owner = ISO
Originally Adobe
| genre =
| released =
| latest release version = 2.0
| latest release date =
| container for =
| contained by =
| extended from =
| extended to = PDF/A, PDF/E, PDF/UA, PDF/VT, PDF/X
| standard = ISO 32000-2
| free = Có
| url =
| image =
| typecode = 'PDF ' Dựa trên ngôn ngữ PostScript, mỗi file PDF bao gồm mô tả đầy đủ về tài liệu phẳng có bố cục cố định, bao gồm văn bản, phông chữ, đồ họa vector, hình ảnh raster và thông tin khác cần thiết để hiển thị tài liệu đó. PDF có nguồn gốc từ "The Camelot Project" do đồng sáng lập Adobe John Warnock khởi xướng vào năm 1991. PDF được chuẩn hóa thành ISO 32000 vào năm 2008. Phiên bản mới nhất là ISO 32000-2:2020 được xuất bản vào tháng 12 năm 2020.

File PDF có thể chứa nhiều nội dung khác nhau ngoài văn bản phẳng và đồ họa bao gồm các thành phần cấu trúc logic, các thành phần tương tác như chú thích và trường biểu mẫu, lớp, phương tiện phong phú (bao gồm nội dung video), các đối tượng ba chiều sử dụng U3D hoặc PRC và nhiều định dạng dữ liệu khác. Đặc tả PDF cũng cung cấp mã hóa và chữ ký số, file đính kèm và siêu dữ liệu để cho phép các quy trình công việc yêu cầu các tính năng này.

Để đọc được tập tin PDF trên máy vi tính, bạn phải có một phần mềm hỗ trợ định dạng này. Phần mềm phổ biến hiện nay là Adobe Reader hay Foxit Reader.

Lịch sử
Sự phát triển của PDF bắt đầu vào năm 1991 khi John Warnock viết một bài báo cho một dự án khi đó có tên mã là Camelot, trong đó ông đề xuất tạo ra một phiên bản PostScript đơn giản hóa có tên là Interchange PostScript (IPS). Không giống như PostScript truyền thống, tập trung chặt chẽ vào việc hiển thị các công việc in ấn cho các thiết bị đầu ra, IPS sẽ được tối ưu hóa để hiển thị các trang trên mọi màn hình và mọi nền tảng. tại thời điểm đó, quyền kiểm soát thông số kỹ thuật được chuyển cho Ủy ban ISO gồm các chuyên gia tình nguyện trong ngành. Năm 2008, Adobe đã công bố Public Patent License cho ISO 32000-1 cấp quyền Royalty-free cho tất cả các bằng sáng chế thuộc sở hữu của Adobe cần thiết để tạo, sử dụng, bán và phân phối các triển khai tuân thủ PDF.

PDF 1.7, phiên bản thứ sáu của đặc tả kỹ thuật PDF đã trở thành ISO 32000-1, bao gồm một số công nghệ độc quyền chỉ do Adobe định nghĩa, chẳng hạn như Adobe XML Forms Architecture (XFA) và tiện ích mở rộng JavaScript cho Acrobat, được ISO 32000-1 tham chiếu là chuẩn mực và không thể thiếu để triển khai đầy đủ thông số kỹ thuật ISO 32000-1. Các công nghệ độc quyền này không được chuẩn hóa và thông số kỹ thuật của chúng chỉ được công bố trên trang web của Adobe. Nhiều công nghệ trong số đó không được hỗ trợ bởi các triển khai PDF phổ biến của bên thứ ba.

ISO đã xuất bản phiên bản 2.0 của PDF, ISO 32000-2 vào năm 2017, có sẵn để mua, thay thế cho thông số kỹ thuật miễn phí do Adobe cung cấp. Tháng 12 năm 2020, phiên bản thứ hai của PDF 2.0, ISO 32000-2:2020, đã được xuất bản, với các giải thích, chỉnh sửa và cập nhật quan trọng cho các tài liệu tham khảo chuẩn mực (ISO 32000-2 không bao gồm bất kỳ công nghệ độc quyền nào làm tài liệu tham khảo chuẩn mực).Vào tháng 4 năm 2023, Hiệp hội PDF đã cung cấp ISO 32000-2 để tải xuống miễn phí.
(1993) – PDF 1.0 / Acrobat 1.0
(1994) – PDF 1.1 / Acrobat 2.0
(1996) – PDF 1.2 / Acrobat 3.0
(1999) – PDF 1.3 / Acrobat 4.0
(2001) – PDF 1.4 / Acrobat 5.0
(2003) – PDF 1.5 / Acrobat 6.0
(2005) – PDF 1.6 / Acrobat 7.0
(2006) – PDF 1.7 / Acrobat 8.0
(2008) – PDF 1.7, Adobe Extension Level 3 / Acrobat 9.0

Chi tiết kỹ thuật
File PDF thường là sự kết hợp của đồ họa vector, văn bản và đồ họa bitmap. Các loại nội dung cơ bản trong PDF là:

Văn bản được sắp chữ được lưu trữ dưới dạng luồng nội dung (tức là không được mã hóa dưới dạng văn bản thuần túy);
Đồ họa vector cho hình minh họa và thiết kế bao gồm hình dạng và đường thẳng;
Đồ họa raster cho ảnh chụp và các loại hình ảnh khác; và
Các đối tượng đa phương tiện khác.

Trong các bản sửa đổi PDF sau này, một tài liệu PDF cũng có thể hỗ trợ các liên kết (bên trong tài liệu hoặc trang web), biểu mẫu, JavaScript (ban đầu có sẵn dưới dạng plugin cho Acrobat 3.0) hoặc bất kỳ loại nội dung nhúng nào khác có thể được xử lý bằng plugin.

PDF kết hợp ba công nghệ:

Một tập hợp con tương đương của ngôn ngữ lập trình PostScript nhưng ở dạng khai báo, để tạo bố cục và đồ họa.
Một hệ thống nhúng/thay thế phông chữ để cho phép phông chữ di chuyển cùng với các tài liệu.
Một hệ thống lưu trữ có cấu trúc để đóng gói các thành phần này và bất kỳ nội dung liên quan nào thành một file duy nhất, với khả năng nén dữ liệu khi cần thiết..

Ngôn ngữ PostScript
PostScript là ngôn ngữ mô tả trang chạy trong trình thông dịch để tạo hình ảnh. Nó có thể xử lý đồ họa và có các tính năng chuẩn của ngôn ngữ lập trình như phân nhánh và lặp. PostScriptkhông nhằm mục đích lưu trữ lâu dài và hiển thị tương tác thời gian thực các tài liệu điện tử lên màn hình máy tính, do đó không cần hỗ trợ bất kỳ thứ gì khác ngoài việc hiển thị các trang liên tiếp.

Nhược điểm của nó là:

Mất đi tính linh hoạt và giới hạn trong một trường hợp sử dụng duy nhất.
Kích thước tệp (đôi khi lớn hơn nhiều).

PDF kể từ v1.6 hỗ trợ nhúng tài liệu 3D tương tác: Bản vẽ 3D có thể được nhúng bằng U3D hoặc PRC và nhiều định dạng dữ liệu khác.

Định dạng file
File PDF được tổ chức bằng ký tự ASCII, ngoại trừ một số phần tử nhất định có thể có nội dung nhị phân. File bắt đầu bằng tiêu đề chứa magic number (dưới dạng chuỗi có thể đọc được) và phiên bản định dạng, ví dụ: %PDF-1.7. Định dạng này là tập hợp con của định dạng COS ("Carousel" Object Structure). Tệp cây COS chủ yếu bao gồm các đối tượng, trong đó có chín loại:

Giá trị Boolean, biểu diễn đúng hoặc sai
Số thực
Integers
Strings, được đặt trong dấu ngoặc đơn ((...)) hoặc được biểu diễn dưới dạng thập lục phân trong dấu ngoặc nhọn đơn (&x3C;...&x3E;). Chuỗi có thể chứa các ký tự 8 bit.
Tên, bắt đầu bằng dấu gạch chéo (/)
Arrays, tập hợp các đối tượng được sắp xếp nằm trong dấu ngoặc vuông ([...])
Dictionaries, Từ điển, tập hợp các đối tượng được lập chỉ mục theo tên nằm trong dấu ngoặc nhọn kép (&x3C;&x3C;...&x3E;&x3E;)
Streams, thường chứa một lượng lớn dữ liệu nhị phân được nén tùy ý, đứng trước một từ điển và nằm giữa các từ stream và endstream
Đối tượng null

Có thể chèn chú thích sử dụng ký tự 8 bit có tiền tố là dấu phần trăm (%).

Đối tượng có thể là trực tiếp (được nhúng trong đối tượng khác) hoặc gián tiếp. Đối tượng gián tiếp được đánh số bằng số đối tượng và số thế hệ và được xác định giữa các từ khóa obj và endobj nếu nằm trong gốc tài liệu. Bắt đầu từ phiên bản PDF 1.5, các đối tượng gián tiếp (trừ các luồng khác) cũng có thể nằm trong các luồng đặc biệt được gọi là luồng đối tượng (được đánh dấu là /Type /ObjStm). Kỹ thuật này cho phép các đối tượng không phải luồng có bộ lọc luồng chuẩn được áp dụng cho chúng, giảm kích thước của các tệp có nhiều đối tượng gián tiếp nhỏ và đặc biệt hữu ích cho Tagged PDF. Luồng đối tượng không hỗ trợ việc chỉ định số thế hệ của đối tượng (khác với 0).

Bảng chỉ mục, còn được gọi là bảng tham chiếu chéo, nằm gần cuối file và cung cấp độ lệch byte của mỗi đối tượng gián tiếp từ đầu file. Thiết kế này cho phép truy cập ngẫu nhiên hiệu quả vào các đối tượng trong file và cũng cho phép thực hiện các thay đổi nhỏ mà không cần ghi lại toàn bộ file (cập nhật gia tăng). Trước phiên bản PDF 1.5, bảng sẽ luôn ở định dạng ASCII đặc biệt, được đánh dấu bằng từ khóa xref và theo sau phần thân chính bao gồm các đối tượng gián tiếp. Phiên bản 1.5 đã giới thiệu các luồng tham chiếu chéo tùy chọn, có dạng đối tượng luồng chuẩn, có thể áp dụng các bộ lọc. Luồng như vậy có thể được sử dụng thay cho bảng tham chiếu chéo ASCII và chứa các độ lệch và thông tin khác ở định dạng nhị phân. Định dạng này linh hoạt ở chỗ nó cho phép chỉ định độ rộng số nguyên (sử dụng mảng /W), do đó, ví dụ, một tài liệu có kích thước không quá 64 KiB chỉ có thể dành 2 byte cho độ lệch đối tượng.

Cuối tệp PDF có phần chân trang chứa

Từ khóa startxref theo sau là một offset đến đầu bảng tham chiếu chéo (bắt đầu bằng từ khóa xref) hoặc đối tượng luồng tham chiếu chéo, theo sau là
Đánh dấu hết file %%EOF.

Nếu không sử dụng luồng tham chiếu chéo, phần chân trang sẽ được đặt trước bằng từ khóa trailer theo sau là một từ điển chứa thông tin mà nếu không thì sẽ được chứa trong từ điển của đối tượng luồng tham chiếu chéo:

Tham chiếu đến đối tượng gốc của cấu trúc cây, còn được gọi là danh mục (/Root)
Số lượng đối tượng gián tiếp trong bảng tham chiếu chéo (/Size)
Thông tin tùy chọn khác

Trong mỗi trang, có một hoặc nhiều luồng nội dung mô tả văn bản, vectơ và hình ảnh được vẽ trên trang. Luồng nội dung dựa trên ngăn xếp, tương tự như PostScript.

Có hai bố cục cho các file PDF: không tuyến tính (không được "tối ưu hóa") và tuyến tính ("tối ưu hóa"). Các tệp PDF không tuyến tính có thể nhỏ hơn các tệp tuyến tính tương ứng của chúng, mặc dù chúng chậm hơn khi truy cập vì các phần dữ liệu cần thiết để lắp ráp các trang của tài liệu nằm rải rác trong file PDF. Các file PDF tuyến tính (còn được gọi là file PDF "tối ưu hóa" hoặc "tối ưu hóa web") được xây dựng theo cách cho phép chúng được đọc trong plugin trình duyệt Web mà không cần chờ toàn bộ file tải xuống, vì tất cả các đối tượng cần thiết để hiển thị trang đầu tiên đều được sắp xếp tối ưu khi bắt đầu file. Các tệp PDF có thể được tối ưu hóa bằng phần mềm Adobe Acrobat hoặc QPDF.

Kích thước trang không bị giới hạn bởi chính định dạng. Tuy nhiên, Adobe Acrobat áp đặt giới hạn là 15 triệu x 15 triệu inch, hoặc 225 nghìn tỉ in2 (145,161&nbsp;km2).

Xem thêm
ebook
Web page
XSL Formatting Objects
Page margin
PDF portfolio

Tham khảo

Đọc thêm

; ISO Standards

PDF 2.0
PDF 2.0

; Adobe open source standards

PDF 1.7 (ISO 32000-1:2008)
PDF 1.7 and
PDF 1.6 () and
PDF 1.5 and
PDF 1.4 () and
PDF 1.3 () and
PDF 1.2
PDF 1.0 ()

; Conference papers



Liên kết ngoài

PDF Association – Hiệp hội PDF là hiệp hội công nghiệp dành cho các nhà phát triển phần mềm tạo hoặc xử lý file PDF.
PDF Specification Index at the PDF Association
PDF Cheat Sheets, 2nd edition by the PDF Association (last updated October 29, 2024)
Sponsored free access to the ISO 32000-2 (PDF 2.0) bundle, including the latest core PDF specification and five ISO standardized extensions to the core specification
Format description of the PDF family, PDF/A, PDF/X from Library of Congress

; Tech notes from Adobe


– Official introductory comparison of PS, EPS vs. PDF.


; Articles

Portable Document Format: An Introduction for Programmers (1999) from MacTech – Introduction to PDF vs. PostScript and PDF internals (up to v1.3)
from Planet PDF that describes the paper in which John Warnock outlined the project that created PDF

; Video

Video: Everything you wanted to know about PDF but was afraid to ask Recording of a talk by Leonard Rosenthol (Adobe Systems) at TUG 2007