Tại sao không copy được chữ trong file PDF? Lớp văn bản Text Layer, Font nhúng và OCR
Mục lục nội dung
1. Hai bản chất hoàn toàn khác biệt của tài liệu PDF
Một trong những tình huống gây thất vọng nhất khi làm việc với tài liệu PDF là việc mở một tệp văn bản nhưng không thể nào bôi đen, chọn văn bản (select) hoặc sao chép (copy) nội dung vào bộ nhớ tạm (clipboard). Về mặt kỹ thuật, tệp PDF hiển thị trên màn hình có thể thuộc một trong hai loại cấu trúc hoàn toàn trái ngược nhau:
- PDF chứa lớp văn bản kỹ thuật số thực sự (Searchable Text Layer): Tài liệu chứa các lệnh vẽ văn bản trực tiếp (như toán tử
TjhoặcTJtrong PDF stream). Từng ký tự được gắn liền với một mã định danh Unicode cụ thể, cho phép tìm kiếm Ctrl+F và bôi đen tự do. - PDF quét dạng ảnh tĩnh thuần túy (Scanned Bitmap Image): Tệp thực chất chỉ là một hoặc nhiều bức ảnh chụp (JPEG/TIFF) được bọc bên trong vỏ bọc trang PDF. Đối với máy tính, đây chỉ là một mảng ma trận điểm ảnh màu sắc mà không hề có bất kỳ dữ liệu chữ cái nào.
2. Bí mật của bảng ánh xạ ToUnicode CMap và Font chữ dạng đường cong (Outlines)
Đôi khi, bạn có thể nhìn thấy chữ rất sắc nét và thậm chí bôi đen được, nhưng khi dán ra Notepad thì toàn bộ biến thành các ký tự vô nghĩa như hoặc ô vuông trống rỗng. Điều này xảy ra do hai nguyên nhân đồ họa chuyên sâu:
| Nguyên nhân kỹ thuật | Cơ chế phát sinh lỗi | Hậu quả khi sao chép chữ |
|---|---|---|
| Thiếu bảng ánh xạ ToUnicode CMap | Font chữ nhúng trong PDF sử dụng bảng mã tùy biến (Custom Encoding). Ký tự 'A' có thể được mã hóa thành byte 0x01. Nếu không có bảng ToUnicode để dịch 0x01 -> U+0041, trình đọc không thể biết đó là chữ gì. |
Dán ra văn bản bị biến dạng hoặc thành các ký tự không đọc được. |
| Chuyển font chữ thành đường cong (Outlines/Paths) | Khi phần mềm đồ họa (như Illustrator, InDesign) xuất PDF với tùy chọn “Create Outlines”, các chữ cái bị biến thành các hình vẽ vector hình học (dùng lệnh m, l, c). |
Con trỏ chuột không thể bôi đen chữ; tài liệu không thể tìm kiếm bằng Ctrl+F. |
3. Vai trò của Nhận dạng ký tự quang học (OCR) và Tiêu chuẩn quét 300 DPI
Để biến một tệp PDF scan dạng ảnh thành tài liệu có thể tìm kiếm và sao chép được chữ, bắt buộc phải sử dụng công nghệ Nhận dạng ký tự quang học (OCR – Optical Character Recognition). Thuật toán OCR sẽ phân tích hình dạng các điểm ảnh, nhận diện mặt chữ và tạo một lớp văn bản trong suốt vô hình (invisible text layer) xếp chồng lên trên bức ảnh gốc.
Để quy trình OCR đạt tỷ lệ chính xác cao nhất (trên 98%), ngành lưu trữ số áp dụng hướng dẫn tiêu chuẩn quét tài liệu ở độ phân giải 300 DPI (Dots Per Inch). Mặc dù 300 DPI không phải là một yêu cầu cứng nhắc bắt buộc cho mọi trường hợp hiển thị đơn giản, đây là mức cân bằng vàng được khuyến nghị rộng rãi nhằm cung cấp đủ mật độ điểm ảnh cho các nét chữ tiếng Việt có dấu thanh nhỏ (như dấu hỏi, ngã, nặng) mà không khiến dung lượng tệp bị phình to quá mức.