Định dạng tệp
RTF là gì? Cách Rich Text Format hoạt động
RTF là định dạng tài liệu do Microsoft tạo ra năm 1987, mô tả văn bản có định dạng chỉ bằng các ký tự ASCII thuần. Bài viết trình bày cấu trúc, giới hạn của nó và những điều cần lưu ý khi chuyển đổi.
Tác giả: Hemen Dönüştür Editör EkibiNgày đăng: 10 phút đọc

Có thể bạn không hay nghe nhắc đến RTF, nhưng nhiều khả năng bạn đã dùng nó không ít lần: trong menu "Xuất" của một chương trình cũ, làm định dạng lưu mặc định của TextEdit trên Mac, hoặc như "lựa chọn an toàn nhất" khi chuyển tài liệu giữa các trình xử lý văn bản. Rich Text Format mô tả các định dạng như in đậm, in nghiêng, phông chữ, màu sắc và bảng chỉ bằng các ký tự văn bản thuần. Bài viết này giải thích RTF ra đời thế nào, bên trong một tệp RTF trông ra sao, nó mạnh ở đâu, yếu ở đâu, và cần lưu ý gì khi chuyển đổi.
RTF là gì?
RTF là định dạng dựa trên văn bản do Microsoft phát triển để chuyển tài liệu giữa các chương trình và hệ điều hành khác nhau. Nó không phải định dạng nhị phân như DOC: mở tệp RTF bằng Notepad, bạn đọc được văn bản của mình xen giữa các lệnh bắt đầu bằng dấu gạch chéo ngược. Nhưng khác với HTML, RTF không được thiết kế để viết bằng tay. Mục đích của nó là giúp một chương trình đọc được tài liệu do chương trình khác tạo ra, kể cả phần định dạng.
Có một sự nhầm lẫn phổ biến nên làm rõ trước: tùy chọn "rich text" (văn bản đa dạng thức) trong ứng dụng email và biểu mẫu web thường chỉ là cách gọi chung cho văn bản có định dạng, và bên dưới thường là HTML. RTF, chủ đề của bài này, là một định dạng tệp cụ thể có phần mở rộng .rtf và cú pháp riêng.
Sơ lược lịch sử
RTF được Richard Brodie, Charles Simonyi và David Luebbert thuộc nhóm Microsoft Word phát triển trong khoảng giữa đến cuối thập niên 1980. Trình đọc và ghi RTF đầu tiên ra mắt năm 1987 cùng Word 3.0 cho Macintosh, triển khai RTF 1.0. Trong hai mươi năm tiếp theo, định dạng này phát triển song song với Word:
| Phiên bản | Thời gian | Ghi chú |
|---|---|---|
| 1.0 | 1987 | Phiên bản đầu tiên, cùng Word 3.0 (Mac) |
| 1.1 | 1989 | Nhúng phông chữ, cùng Word 4 |
| 1.2 - 1.4 | 1993 - tháng 9/1995 | Các phiên bản đi kèm Word 5, Word 6 và Word 95 |
| 1.5 | tháng 4/1997 | Hỗ trợ Unicode cùng Word 97 (từ điều khiển \u) |
| 1.6 - 1.8 | tháng 5/1999 - tháng 4/2004 | Các phiên bản đi kèm Word 2000, 2002 và 2003 |
| 1.9.1 | tháng 3/2008 | Phiên bản cuối cùng, tương thích Word 2007 |
Sau 1.9.1, Microsoft ngừng phát triển đặc tả RTF. Theo mô tả định dạng của Library of Congress, Microsoft cho biết các tính năng ra đời từ Word 2010 trở đi sẽ không được giữ lại khi lưu thành RTF. Tóm lại, RTF vẫn được hỗ trợ nhưng không còn phát triển nữa.
Bên trong một tệp RTF có gì?
RTF được xây dựng trên ba thành phần:
- Nhóm (group): các phần nằm trong cặp ngoặc nhọn
{ }. Một thay đổi định dạng bên trong nhóm sẽ kết thúc khi nhóm đóng lại. - Từ điều khiển (control word): chuỗi chữ cái bắt đầu bằng dấu gạch chéo ngược, như
\b(in đậm) hay\fs24(cỡ chữ tính bằng nửa point; 24 nghĩa là 12 pt). Chúng có thể nhận tham số số:\b1bật in đậm và\b0tắt in đậm. - Ký hiệu điều khiển (control symbol): dấu gạch chéo ngược theo sau là một ký tự không phải chữ cái, như
\~(khoảng trắng không ngắt) hay\'e9(một ký tự trong bảng mã, viết ở dạng thập lục phân).
Một tài liệu RTF đơn giản trông như sau:
{\rtf1\ansi\ansicpg1252\deff0
{\fonttbl{\f0 Times New Roman;}}
{\colortbl;\red200\green0\blue0;}
\f0\fs24 This is a {\b bold} word and some {\cf1 red} text in a caf\'e9.\par
}
Tệp mở đầu bằng {\rtf1, tiếp theo là bộ ký tự (\ansi) và bảng mã (\ansicpg1252, bảng mã Windows cho các ngôn ngữ Tây Âu). Bảng phông chữ (\fonttbl) và bảng màu (\colortbl) được khai báo ở đầu và được tham chiếu bằng số thứ tự trong văn bản. \par kết thúc một đoạn văn. Phần còn lại của tài liệu chứa cài đặt phân đoạn, đầu trang và chân trang, đoạn văn và bảng; Library of Congress lưu ý rằng RTF coi bảng là một dạng đoạn văn.
Các ký tự ngoài ASCII có thể được viết theo hai cách. Cách cũ dùng mã thoát thập lục phân như \'e9 để chỉ một ký tự trong bảng mã đã khai báo (E9 là "é" trong bảng mã 1252). Cách được bổ sung từ RTF 1.5 dùng từ điều khiển Unicode như \u305?: con số là giá trị Unicode của ký tự (305 là chữ "ı" không có dấu chấm của tiếng Thổ Nhĩ Kỳ), còn ký tự theo sau là ký tự dự phòng cho trình đọc không hỗ trợ Unicode. RTF không lưu văn bản bằng một bảng mã Unicode như UTF-8; bản thân tệp thường là ASCII 7 bit.
RTF được dùng ở đâu?
- Chuyển tài liệu giữa các chương trình: mang văn bản có định dạng qua lại giữa các trình xử lý văn bản hoặc hệ điều hành khác nhau.
- Báo cáo do phần mềm xuất ra: nhiều ứng dụng kinh doanh và chuyên ngành tạo báo cáo có định dạng dưới dạng RTF mà không cần đến Word, vì tạo RTF đơn giản hơn nhiều so với tạo DOCX.
- Bộ nhớ tạm (clipboard): RTF là một trong những định dạng phổ biến được dùng khi sao chép văn bản có định dạng trên Windows và macOS.
- Trình soạn thảo đơn giản: WordPad và TextEdit dùng RTF làm mặc định.
Ưu điểm và nhược điểm
| Ưu điểm | Nhược điểm |
|---|---|
| Hầu như trình xử lý văn bản nào cũng đọc được | Không được phát triển từ năm 2008 |
| Dựa trên văn bản nên dễ trích xuất chữ | Tệp có hình ảnh có thể rất nặng |
| Không có ngôn ngữ macro | Đối tượng OLE nhúng và tham chiếu mẫu có thể là rủi ro bảo mật |
| Dễ tạo ra, lý tưởng làm đầu ra của phần mềm | Thường khó biết một chương trình hỗ trợ phiên bản và tính năng nào |
| Tương thích tiến và lùi giữa các phiên bản | Mất các tính năng nâng cao của Word |
Một lưu ý về bảo mật: RTF không chứa được macro, nhưng không phải không có rủi ro. Các ghi nhận tổng hợp trên Wikipedia cho thấy tệp RTF từng bị dùng trong các cuộc tấn công thông qua chèn mẫu (template injection) và đối tượng OLE nhúng, với các lỗ hổng liên quan trong WordPad đời cũ và trong Word được vá vào năm 2017 và 2015. Hãy đối xử với tệp RTF từ nguồn không rõ cẩn trọng như với mọi tài liệu khác.
Những chương trình nào mở được RTF?
Microsoft Word, LibreOffice Writer, Apple Pages, TextEdit và WPS Office có thể mở và lưu RTF. WordPad, trình soạn RTF mặc định lâu năm trên Windows, không còn đi kèm các phiên bản Windows 11 hiện tại, nên ở đó bạn sẽ cần Word hoặc LibreOffice. Library of Congress cũng ghi nhận rằng tệp RTF không mở được trong Word bản web và bản máy tính bảng. Google Docs có thể nhập RTF và tải tài liệu xuống dưới dạng RTF.
Các lỗi thường gặp và cách khắc phục
Ký tự có dấu hoặc ký tự ngoài bảng chữ Latin hiển thị sai
Nếu chương trình tạo tệp khai báo sai bảng mã, hoặc dùng mã thoát thập lục phân của một bảng mã khác thay cho từ điều khiển Unicode, các ký tự sẽ bị tráo đổi: chẳng hạn chữ "ı" của tiếng Thổ Nhĩ Kỳ hiện thành "ý" và "ş" thành "þ", dấu hiệu kinh điển của việc nhầm lẫn bảng mã 1254 (tiếng Thổ Nhĩ Kỳ) và 1252 (Tây Âu). Văn bản tiếng Việt cũng có thể gặp lỗi tương tự khi bảng mã bị khai báo sai. Mở tệp bằng Word hoặc LibreOffice rồi lưu thành DOCX là cách dễ nhất để sửa tệp nguồn.
Tệp nặng hơn nhiều so với dự kiến
RTF thường lưu hình ảnh dưới dạng văn bản thập lục phân thay vì nhị phân, khiến dữ liệu ảnh tăng gần gấp đôi. Với tài liệu có hình ảnh, DOCX hoặc PDF cho tệp nhỏ hơn nhiều.
Định dạng thay đổi giữa các chương trình
Mỗi chương trình hỗ trợ một tập con khác nhau của RTF và bỏ qua những từ điều khiển nó không nhận ra. Nếu diện mạo phải chính xác, hãy chia sẻ bản cuối cùng dưới dạng PDF.
Mẹo khi chuyển đổi tệp RTF
Trên trình chuyển đổi của chúng tôi, tệp RTF được tải lên máy chủ, xử lý bằng LibreOffice và bị xóa trong vòng 30 phút. Việc chuyển đổi giữa RTF, DOCX, DOC và PDF diễn ra trực tiếp không qua bước trung gian, nên bố cục trang, đầu trang và chân trang, bảng và đánh số danh sách đều được giữ nguyên.
- RTF sang Word là lựa chọn tốt nhất để chỉnh sửa kết quả xuất từ phần mềm cũ và giảm dung lượng tệp.
- RTF sang PDF cố định một diện mạo vốn hay thay đổi giữa các chương trình.
- RTF sang TXT loại bỏ mọi từ điều khiển, chỉ giữ lại văn bản dễ đọc.
- Khi dùng Word sang RTF, hãy nhớ rằng các tính năng từ Word 2010 trở đi (các kiểu biểu đồ mới, một số tùy chọn bố cục) có thể không có tương đương trong RTF.
- Nếu cần một tài liệu có định dạng từ văn bản thuần, TXT sang RTF chuyển văn bản sang theo từng đoạn. RTF tạo từ các nguồn như HTML và Markdown cũng giữ được chữ đậm, tiêu đề, danh sách và bảng nhờ bộ xuất RTF của LibreOffice.
Câu hỏi thường gặp
RTF và DOCX khác nhau thế nào?
RTF mô tả định dạng bằng các từ điều khiển chèn trong văn bản thuần và không thay đổi từ năm 2008. DOCX là tiêu chuẩn hiện hành dựa trên ZIP, gồm các phần XML. DOCX hỗ trợ nhiều tính năng hơn và nhỏ hơn hẳn với tài liệu có hình ảnh.
Tệp RTF có chứa được macro không?
Không, RTF không có ngôn ngữ macro. Tuy vậy đối tượng OLE nhúng và tham chiếu mẫu vẫn có thể bị lợi dụng, nên hãy cẩn trọng với tệp RTF từ nguồn không rõ.
RTF còn được hỗ trợ không?
Có, Word và các trình xử lý văn bản khác vẫn mở và lưu RTF. Nhưng phiên bản cuối cùng của đặc tả, 1.9.1, được công bố vào tháng 3 năm 2008 và Microsoft không còn phát triển định dạng này.
Làm sao mở tệp RTF trên Windows 11?
Trên các phiên bản không có WordPad, hãy mở bằng Word, LibreOffice Writer hoặc WPS Office. Nếu chỉ cần đọc, chuyển tệp sang PDF rồi xem trong trình duyệt cũng được.
Vì sao ký tự đặc biệt bị lỗi trong RTF?
Thường là do chương trình tạo tệp khai báo sai bảng mã. Những chương trình ghi từ điều khiển Unicode tránh được hoàn toàn vấn đề này.


