Formats2026-09-184 phút đọc

Vì sao subset font làm hỏng chỉnh sửa nhưng không hỏng việc đọc

Subset font chỉ giữ lại những glyph mà PDF đã dùng. Trình đọc vẫn hiển thị được; chỉnh sửa thất bại ở ký tự thiếu. PDF123 Compress không subset font.

PDF123 · Updated 2026-09-18

Một PDF có thể trông hoàn hảo mà vẫn từ chối ký tự tiếp theo bạn gõ. Thường đó không phải trình xem hỏng, mà là subset font: tệp chỉ nhúng những glyph cần thiết ở thời điểm nó được tạo, và thao tác chỉnh sửa đòi một glyph chưa từng được đóng gói vào.

Subset là gì

Font TrueType và OpenType có thể chứa hàng chục nghìn glyph. Một bản ghi nhớ mười trang có khi chỉ dùng vài trăm. Subsetting viết lại font nhúng để bỏ đi các glyph không dùng. Kích thước tệp giảm; việc hiển thị trên màn hình và in chữ sẵn có vẫn như cũ, vì mọi ký tự đã xuất hiện trong tài liệu đều còn đó.

Vì vậy việc đọc và in vẫn thành công. Chế độ hỏng lộ ra về sau: ai đó mở PDF trong một trình soạn thảo, gõ một chữ có dấu hoặc dấu câu hiếm, và glyph còn thiếu bị thay thế, để trống hoặc bị từ chối. Sao chép-dán phần chữ sẵn có thường vẫn được; chính việc chèn ký tự mới mới đụng vào lỗ hổng trong bảng glyph.

Subset không phải là gỡ font

Đối tượng font vẫn được nhúng. Thứ rời đi là phần không dùng của bảng glyph. Điều này khác với:

  • Dựa vào một font hệ thống được cài trên máy người đọc (rủi ro thay thế giữa các hệ điều hành)
  • Chuyển chữ thành outline hoặc ảnh (việc này giết chết chọn và tìm)
  • Mã hóa tệp (Protect); mã hóa không subset glyph

Nhiều exporter văn phòng và driver in-ra-PDF subset theo mặc định khi chúng nhúng font. Tổn hại xảy ra ngay lúc xuất, không phải khi một trình xem về sau mở tệp. Lưu lại qua một công cụ PDF khác có thể subset lại hoặc không; nó sẽ không khôi phục một cách thần kỳ những glyph chưa từng được ghi ra.

PDF123 Compress thực sự làm gì

Compress (POST /api/v1/misc/compress-pdf) yêu cầu qpdf nén luồng (--compress-streams=y), nén lại dữ liệu flate và tạo object stream. Nó không subset font và không nhận là có giảm mẫu ảnh. Nếu một tệp đã chặt về luồng, bản tải về có thể gần như không đổi kích thước. Nếu tệp đã chứa font subset, Compress để nguyên các subset đó, không mở rộng chúng trở lại thành face đầy đủ.

Về cách các đòn bẩy kích thước tương tác trong pipeline PDF nói chung (ảnh, luồng, cấu trúc), xem Nén PDF thực sự thay đổi điều gì trong tệp. Hãy coi bài đó là kiến thức nền; đừng đọc nó như một tuyên bố rằng nút Compress của site này subset typeface.

OCR và chuyển đổi Markdown cũng không khôi phục các glyph thiếu trong PDF: OCR trả chữ Markdown, còn PDF to Markdown chỉ trích xuất những gì lớp chữ đã chứa.

Chỉnh sửa và đọc, trong thực tế

Hành động Kết quả điển hình sau subset
Mở, cuộn, in, chọn chữ sẵn có Được; các glyph được tham chiếu vẫn còn
Chèn ký tự chưa từng dùng trong bản gốc Có thể thất bại hoặc bị thay thế
Kỳ vọng một font chỉnh sửa đầy đủ bên trong PDF Mong manh; subset đã bỏ các glyph không dùng
Chạy Compress trên PDF123 Luồng có thể nhỏ hơn; kho glyph không đổi

Nếu bạn cần tiếp tục chỉnh sửa với bộ ký tự đầy đủ, subsetting chính là cài đặt xuất sai. Hãy ưu tiên một nguồn chỉnh sửa được (Word, hoặc Markdown qua Markdown to PDF để render mới) hay một PDF vẫn nhúng face đầy đủ. Compress trên PDF123 sẽ không đưa những glyph đó trở lại.

Khi chẩn đoán “tôi không gõ được é trong PDF này”, hãy kiểm tra xem bản xuất gốc có subset font không trước khi đổ lỗi cho trình xem hay Repair. Repair dựng lại cấu trúc; nó không mở rộng bảng glyph. Một vòng qua Markdown có thể tạo ra PDF mới với font mà WeasyPrint nhúng cho lần render đó, hữu ích cho một tài liệu mới nhưng không phục hồi được face subset cũ theo kiểu phẫu thuật.

Open tool
Process in the browser — no watermark, files removed after the job.
Open tool