Khi chữ trong PDF hiển thị đúng nhưng copy ra lại thành ký tự lạ, nguyên nhân thường nằm ở lớp dữ liệu bên dưới chứ không phải ở hình chữ: tệp dùng phông theo bảng mã cũ như TCVN3 hoặc VNI, phông nhúng thiếu bảng ánh xạ sang Unicode, chữ được lưu ở dạng tổ hợp tách dấu, hoặc đó là PDF quét có lớp chữ do OCR tạo ra chất lượng kém. Mỗi nguyên nhân có cách sửa riêng, và sửa đúng gốc thường là quay lại tệp nguồn hoặc nhận dạng lại, thay vì vá từng chữ.
Vấn đề này không chỉ gây phiền khi copy. Công cụ tìm kiếm, phần mềm đọc màn hình cho người khiếm thị, và cả chatbot khi bạn tải PDF lên đều đọc lớp chữ bên dưới. Nếu lớp đó hỏng, chatbot sẽ tóm tắt một văn bản đầy ký tự vô nghĩa, hoặc tệ hơn, đoán bừa nội dung. Bài này giúp chẩn đoán trong vài phút và chọn cách sửa phù hợp.
Ba loại PDF: biết mình đang cầm loại nào
Loại thứ nhất là PDF sinh từ văn bản số, xuất ra từ trình soạn thảo, bảng tính hay phần mềm dàn trang. Bên trong có chữ thật, mỗi ký tự được vẽ bằng một phông chữ nhúng kèm. Copy được hay không, đúng hay sai, phụ thuộc vào phông đó và thông tin ánh xạ đi kèm.
Loại thứ hai là PDF ảnh, tạo từ máy quét hay ứng dụng chụp tài liệu mà không chạy nhận dạng chữ. Mỗi trang chỉ là một tấm ảnh. Bôi đen không được, tìm kiếm không ra gì, copy không có chữ. Muốn có chữ thì phải OCR.
Loại thứ ba là PDF quét có lớp chữ ẩn: trang vẫn hiển thị ảnh gốc, nhưng phía dưới có một lớp chữ vô hình do OCR tạo ra, đặt đúng vị trí từng từ. Bôi đen và tìm kiếm được, nhưng chữ copy ra chính là kết quả OCR, nên đúng sai tuỳ chất lượng nhận dạng. Đây là loại dễ gây nhầm nhất: người dùng thấy ảnh rõ đẹp, tưởng chữ copy ra cũng đúng như vậy.
Cách phân biệt nhanh: phóng to thật lớn một chữ. Chữ sinh từ văn bản vẫn sắc nét ở mọi mức phóng; chữ trong ảnh quét sẽ vỡ hạt. Sau đó thử bôi đen một dòng: không bôi được là PDF ảnh; bôi được trên ảnh vỡ hạt là PDF quét có lớp chữ.
Bốn nguyên nhân hay gặp khiến chữ copy ra bị lỗi
Phông theo bảng mã cũ. Trước khi Unicode phổ biến, văn bản tiếng Việt thường dùng các bảng mã như TCVN3 (phông tên bắt đầu bằng ".Vn", ví dụ .VnTime) hoặc VNI (phông tên bắt đầu bằng "VNI-"). Với các bảng mã này, chữ "ư" chẳng hạn được lưu bằng mã của một ký tự Latin khác, phông chữ chỉ "vẽ" mã đó thành hình chữ ư. Trên trang PDF trông hoàn toàn bình thường, nhưng copy ra là ký tự gốc, thành chuỗi lạ. Rất nhiều văn bản hành chính, giáo trình cũ vẫn mang di sản này.
Phông nhúng thiếu bảng ánh xạ Unicode. Ngay cả phông Unicode, khi nhúng vào PDF, có thể chỉ được nhúng phần hình chữ và đánh số lại. Nếu tệp không kèm bảng ánh xạ từ hình chữ sang mã Unicode, trình đọc PDF không biết hình chữ số 57 là chữ gì, và copy ra ký tự sai hoặc rỗng. Lỗi này hay gặp ở PDF xuất từ một số phần mềm dàn trang hoặc máy in ảo cũ.
Chữ tổ hợp tách dấu. Có PDF lưu chữ có dấu ở dạng tổ hợp: chữ cái gốc cộng dấu riêng. Khi dán vào nơi xử lý không tốt, dấu có thể tách rời, nằm lệch sang chữ bên cạnh hoặc thành ô vuông. Văn bản vẫn "đúng" về mặt dữ liệu nhưng không khớp khi tìm kiếm với văn bản dạng dựng sẵn.
Lớp chữ OCR kém. Với PDF quét có lớp chữ, nếu OCR được chạy với cài đặt ngôn ngữ không phải tiếng Việt, hoặc ảnh có độ phân giải thấp, lớp chữ sẽ đầy lỗi mất dấu, sai ký tự. Ảnh trông rõ không đảm bảo gì cho lớp chữ bên dưới.
Chẩn đoán trong năm phút
Trước khi sửa, xác định đúng nguyên nhân. Các bước dưới đây làm được với trình đọc PDF thông thường.
- Phóng to và bôi đen để biết loại PDF như phần trên.
- Tìm kiếm một từ có dấu trong ô tìm kiếm của trình đọc, ví dụ "Việt". Tìm không ra dù thấy chữ đó trên trang là dấu hiệu lớp chữ có vấn đề.
- Xem danh sách phông trong phần thuộc tính tài liệu của trình đọc PDF. Thấy tên phông bắt đầu bằng ".Vn" hoặc "VNI-" gần như chắc là bảng mã cũ.
- Dán thử vào trình soạn thảo văn bản thuần để xem dữ liệu thật, không bị định dạng che. Chuỗi ký tự Latin lạ có quy luật là bảng mã cũ; dấu tách rời là tổ hợp; chữ thiếu dấu ngẫu nhiên là OCR kém.
- Kiểm vài trang khác nhau. Một tệp ghép từ nhiều nguồn có thể có trang này đúng, trang kia lỗi.
Ghi lại kết quả chẩn đoán cho từng tệp, nhất là khi phải xử lý cả kho tài liệu: thường sẽ thấy lỗi tập trung ở một số nguồn nhất định, như tài liệu của một phòng ban còn dùng phông cũ, hay một máy quét cài sai ngôn ngữ OCR.
Sửa theo từng nguyên nhân
Nguyên tắc chung: sửa ở nguồn tốt hơn vá ở đầu ra. Bảng dưới gợi ý cách sửa cho từng ca.
| Nguyên nhân | Cách sửa ưu tiên | Cách tạm khi không có nguồn | Lưu ý |
|---|---|---|---|
| Phông TCVN3, VNI | Mở tệp gốc, chuyển mã văn bản sang Unicode, đổi phông, xuất lại PDF | Copy ra rồi dùng công cụ chuyển mã, như chức năng chuyển mã của Unikey, chọn đúng bảng mã nguồn | Chọn sai bảng mã nguồn sẽ ra chuỗi lỗi kiểu khác; kiểm vài dòng trước khi chuyển cả tệp |
| Thiếu bảng ánh xạ Unicode | Xuất lại từ tệp gốc bằng phần mềm, cài đặt nhúng phông đầy đủ | Coi như PDF ảnh: chạy OCR tiếng Việt trên ảnh trang | Đừng cố đoán ánh xạ thủ công từng ký tự |
| Chữ tổ hợp | Chuẩn hoá văn bản sau khi copy về dạng dựng sẵn (NFC) | Như cách ưu tiên | Nhiều trình soạn thảo, ngôn ngữ lập trình có sẵn hàm chuẩn hoá |
| Lớp chữ OCR kém | Chạy lại OCR với ngôn ngữ tiếng Việt, ảnh độ phân giải đủ | Sửa tay đoạn cần dùng, đối chiếu ảnh | Thay hẳn lớp chữ cũ, không chồng thêm lớp mới |
Với tài liệu nội bộ còn tệp gốc, cách bền vững nhất là chuyển hẳn tệp gốc sang Unicode một lần, rồi từ đó về sau chỉ dùng phông Unicode. Mỗi lần vá ở đầu ra chỉ giải quyết được một bản copy, còn tệp lỗi vẫn tiếp tục được gửi đi.
Nhận mặt chuỗi lỗi và những cách sửa làm hỏng thêm
Kiểu lỗi của TCVN3. Dán ra trình soạn thảo thuần, chữ có dấu biến thành một ký tự Latin mở rộng duy nhất, chẳng hạn "Việt Nam" thường hiện thành dạng "ViÖt Nam". Mỗi chữ có dấu bị thay bằng một ký tự lạ, còn chữ không dấu giữ nguyên, nên câu vẫn đọc lờ mờ được.
Kiểu lỗi của VNI. Chữ có dấu tách thành chữ cái gốc cộng một hoặc hai ký tự phụ, ví dụ "Việt Nam" thường hiện thành dạng "Vieät Nam". Văn bản dài ra, xuất hiện nhiều ký tự như ä, ø, ù chen giữa từ. Nhìn kiểu lỗi là đoán được bảng mã nguồn để chọn đúng trong công cụ chuyển mã.
Kiểu lỗi của lớp chữ OCR. Không có quy luật ký tự cố định: chỗ mất dấu, chỗ nhầm hỏi với ngã, chỗ "rn" thành "m", chữ dính nhau hoặc ngắt dòng giữa từ. Đây là dấu hiệu nên OCR lại chứ không chuyển mã, vì chuyển mã chỉ đổi ký tự theo bảng, không khôi phục được thông tin đã mất.
Sai lầm thứ nhất: chuyển mã hai lần. Văn bản đã là Unicode mà vẫn chạy qua công cụ chuyển mã từ TCVN3 sẽ biến chữ đúng thành chuỗi lỗi kiểu mới, khó gỡ hơn ban đầu. Luôn thử trên vài dòng và giữ một bản gốc chưa động vào.
Sai lầm thứ hai: tìm và thay tay từng ký tự. Với tài liệu vài trang có thể tạm được, nhưng với tệp dài, thay tay dễ sót và dễ thay nhầm vào những chỗ ký tự đó là đúng, như tên riêng nước ngoài có chữ ö hay ü. Dùng công cụ chuyển mã có bảng đầy đủ, rồi soát lại bằng tìm kiếm vài từ có dấu khó.
Sai lầm thứ ba: in ra rồi quét lại. Đây là cách "chữa cháy" thường thấy khi copy không được, nhưng nó biến một văn bản có chữ thật thành ảnh, rồi lại phải OCR với mọi rủi ro đi kèm. Nếu còn tệp gốc hoặc chuyển mã được, đó luôn là đường ngắn và chính xác hơn.
Khi đưa PDF vào chatbot: kiểm lớp chữ trước
Nhiều người tải PDF lên chatbot để tóm tắt, hỏi đáp. Phần lớn công cụ đọc lớp chữ của PDF trước tiên, chỉ một số trường hợp mới nhìn ảnh trang. Nếu lớp chữ là bảng mã cũ, chatbot nhận được một chuỗi vô nghĩa; có công cụ báo lỗi, có công cụ vẫn cố trả lời dựa trên vài từ đọc được và phần còn lại là đoán. Với lớp chữ OCR kém, câu trả lời có thể sai đúng ở con số hay tên riêng bị đọc nhầm.
Cách tự bảo vệ đơn giản: trước khi tải lên, copy thử một đoạn có dấu và một con số quan trọng ra trình soạn thảo. Nếu không đúng, sửa lớp chữ trước. Khi đọc câu trả lời, yêu cầu chatbot trích nguyên văn đoạn làm căn cứ, rồi đối chiếu với trang PDF bằng mắt. Ví dụ câu lệnh: "Trả lời dựa trên tài liệu đính kèm. Với mỗi ý, trích nguyên văn câu trong tài liệu và ghi số trang. Nếu không tìm thấy, nói rõ là không có trong tài liệu."
Với tài liệu có thông tin cá nhân, hợp đồng, hồ sơ khách hàng, nhớ rằng tải PDF lên dịch vụ trực tuyến là gửi toàn bộ lớp chữ, kể cả những trang bạn không định hỏi. Che hoặc tách bớt trang không cần thiết trước khi tải lên.
Tạo PDF tiếng Việt "sạch" để lưu trữ và chia sẻ
Để những người nhận tệp sau này không gặp lại các lỗi trên, khi tạo PDF nên dùng phông Unicode, chọn chế độ nhúng phông đầy đủ, và kiểm bằng cách copy thử vài dòng có dấu ngay sau khi xuất. Với bản quét, chạy OCR với ngôn ngữ tiếng Việt và kiểm lớp chữ trên vài trang trước khi phát hành cả lô.
Với tài liệu cần lưu trữ lâu dài, có thể xuất theo chuẩn PDF/A, một họ tiêu chuẩn ISO dành cho lưu trữ. PDF/A yêu cầu nhúng phông và hạn chế những thành phần phụ thuộc bên ngoài, nhờ đó tệp mở ra sau nhiều năm vẫn hiển thị như cũ. Một số mức của chuẩn còn yêu cầu có ánh xạ Unicode cho chữ, đúng thứ giúp copy và tìm kiếm chính xác.
Cuối cùng, nếu bạn giữ một kho văn bản cũ soạn bằng phông TCVN3 hay VNI, việc chuyển đổi hàng loạt sang Unicode là khoản đầu tư đáng làm: nó giúp tìm kiếm, giúp công cụ AI đọc đúng, giúp người khiếm thị dùng phần mềm đọc màn hình, và giúp tài liệu tiếp tục sống khi các phông cũ không còn được cài sẵn trên máy mới.
Câu hỏi thường gặp
Vì sao PDF nhìn đúng mà copy ra thành chữ lạ?
Hình chữ bạn thấy do phông vẽ ra, còn chữ copy ra là mã ký tự lưu bên dưới. Với phông bảng mã cũ như TCVN3, VNI, hoặc phông nhúng thiếu bảng ánh xạ Unicode, mã bên dưới không phải mã Unicode của chữ tiếng Việt, nên dán ra thành chuỗi ký tự Latin khác.
Làm sao biết PDF dùng phông TCVN3 hay VNI?
Mở phần thuộc tính tài liệu trong trình đọc PDF và xem danh sách phông được dùng. Phông TCVN3 thường có tên bắt đầu bằng ".Vn", phông VNI bắt đầu bằng "VNI-". Ngoài ra, dán thử chữ ra trình soạn thảo thuần cũng cho thấy kiểu chuỗi lỗi đặc trưng của từng bảng mã.
Copy từ PDF ra bị tách dấu thì sửa thế nào?
Đó thường là chữ ở dạng Unicode tổ hợp. Chuẩn hoá văn bản về dạng dựng sẵn NFC bằng chức năng có sẵn trong nhiều trình soạn thảo, công cụ chuyển mã hoặc ngôn ngữ lập trình. Sau khi chuẩn hoá, dấu sẽ gắn đúng vào chữ và tìm kiếm cũng khớp.
PDF quét có tìm kiếm được nhưng kết quả sai, có nên sửa trực tiếp lớp chữ?
Sửa vài chỗ thì được với công cụ chỉnh PDF, nhưng nếu lỗi nhiều, cách tốt hơn là chạy lại OCR với ngôn ngữ tiếng Việt trên ảnh có độ phân giải đủ, rồi thay hẳn lớp chữ cũ. Chồng thêm một lớp chữ mới lên lớp cũ có thể khiến kết quả tìm kiếm bị lặp hoặc lẫn lộn.
Chatbot có tự đọc được ảnh trang nếu lớp chữ PDF hỏng không?
Một số công cụ có thể nhìn ảnh trang, nhưng nhiều công cụ ưu tiên lớp chữ và không báo khi lớp chữ hỏng. Cách chắc chắn là kiểm lớp chữ trước khi tải lên, và nếu hỏng thì sửa hoặc OCR lại, hoặc chuyển trang cần hỏi thành ảnh để công cụ buộc phải đọc ảnh.
PDF/A có bắt buộc cho tài liệu lưu trữ không?
Tuỳ quy định của từng cơ quan và loại hồ sơ; một số quy định về lưu trữ điện tử có yêu cầu định dạng cụ thể, nên cần tra văn bản hiện hành của ngành. Ngay cả khi không bắt buộc, PDF/A là lựa chọn an toàn cho tài liệu cần mở lại sau nhiều năm vì phông được nhúng đầy đủ.