RTF в Markdown: достаём структуру из формата 1987 года
Откройте файл .rtf в текстовом редакторе — и увидите что-то вроде
{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}}\b Heading\b0\par. В этом весь фокус Rich
Text Format: это обычный ASCII с рассыпанными по нему управляющими словами. \b включает
жирный, \b0 выключает, \par завершает абзац, а фигурные скобки задают область
действия. Microsoft спроектировала его в конце восьмидесятых, чтобы текстовые процессоры разных вендоров
могли обмениваться документами, и с тех пор дизайн почти не менялся.
Это делает конвертер RTF в Markdown довольно честной переводческой работой. Оба формата
размечают текст в строке. Жирный становится **bold**, курсив — *italic*, список —
списком, таблица — таблицей с вертикальными чертами. Перетащите файл выше — и через пару секунд получите
Markdown: бесплатно, без регистрации, лимит 50 МБ, ничего не сохраняется.
Почему вам до сих пор вручают RTF-файлы
В 2026 году RTF никто не выбирает. Он всё равно приходит — и почти всегда из одного из этих источников:
- Судебные и юридические системы. Порталы электронной подачи документов, службы транскрибации и софт ведения дел опираются на RTF, потому что это открытая, стабильная, повсеместно читаемая спецификация, которая не сломается, когда другая сторона откроет файл в чём-то из 2009 года.
- Медицинские записи. Клинические заметки, выписные эпикризы и результаты диктовки лежат RTF-блобами внутри баз медицинских систем куда чаще, чем предположил бы человек со стороны.
- Государственный и общественный документооборот. Логика та же, что у судов, — долговечная читаемость важнее новизны формата.
- WordPad. RTF десятилетиями был его родным форматом сохранения, так что в нём лежит огромный массив неформально написанной документации.
- Почтовые вложения и rich-text-тела писем. Режим rich text в Outlook порождает RTF, и он всплывает, когда вы извлекаете содержимое из почтовых файлов MSG.
- Старые поля CRM и заметок по делам. Любое приложение, поставлявшее rich-text-поле до того, как веб-редакторы стали хорошими, скорее всего хранит в колонке базы данных именно RTF.
Управляющие слова против настоящего содержимого
Вся работа конвертации — отличить одно от другого. RTF-файл открывается группой заголовка с таблицей шрифтов, обычно таблицей цветов, иногда таблицей стилей. Ничто из этого не содержимое — это собственная конфигурация документа, и в короткой служебной записке она легко может составлять треть байтов файла.
После заголовка идёт тело, где управляющие слова перемежаются с текстом. Некоторые управляющие слова чисто отображаются на Markdown:
- Символьное форматирование.
\b,\iи\ulстановятся жирным, курсивом и — поскольку в Markdown нет подчёркивания — обычно просто выделением или ничем. Это реальная потеря, если документ подчёркивает определяемые термины, как часто делают в юридических текстах. - Абзацы и разрывы.
\parи\lineстановятся разрывами абзаца и строки. Просто. - Списки.
\pntextи более новая машинерия\listtableстановятся маркерами и номерами, с сохранением вложенности там, где исходник корректно объявил уровни. - Таблицы.
\trowd,\cellxи\cellявно задают строки и границы ячеек, поэтому они надёжно реконструируются в Markdown-таблицы. Это главная причина выбрать Markdown вместо RTF в обычный текст: уплощите таблицу — и колонка, к которой относилось каждое значение, пропала навсегда.
Неудобный случай — заголовки. В RTF есть именованные стили абзацев в \stylesheet, и если автор
ими пользовался, «Heading 1» отображается в #, и вы получаете настоящую структуру документа.
Но RTF позволяет форматировать и напрямую — сделать строку 18pt и жирной, готово, — и очень многие реальные
файлы написаны именно так. Когда сконвертированный RTF выходит плоским, с жирными строками там, где должны
быть заголовки, — причина в этом. Исходник ни разу не сказал «заголовок». Он сказал только «крупно и
жирно».
Встроенные объекты не проходят
RTF может нести бинарные полезные нагрузки прямо в строке: изображения — группами \pict в
шестнадцатеричной кодировке, а OLE-вставки — связанный диапазон Excel, диаграмму Visio, объект-формулу —
группами \object. Вот почему RTF с тремя скриншотами может быть 12 МБ того, что выглядит как
текст.
Ничто из этого не становится словами. OCR здесь нет, поэтому скриншот таблицы остаётся скриншотом. Встроенный объект-таблица оставляет после себя тот плоский рендер, что был сохранён рядом с ним, — и он может быть неполным; если числа важны, добудьте исходную книгу и прогоните её через Excel в Markdown. Сноски и комментарии обычно выживают как текст, но приземляются в конце потока, а не там, где были закреплены, — проверьте их положение, прежде чем на них полагаться.
RTF действительно предсказуемее DOCX
DOCX — это zip-архив с XML-документом плюс файлы связей, часть со стилями, определения нумерации и типы содержимого. Структура живёт в нескольких местах сразу, и они ссылаются друг на друга. Конвертируется он хорошо, но его много.
RTF — один линейный поток, читаемый сверху вниз. Ничего не сжато, нет zip-слоя, который может побиться, нет графа связей. Когда что-то конвертируется странно, файл можно открыть в текстовом редакторе и увидеть почему — чего не скажешь ни об одном современном офисном формате. Ровно за эту прозрачность его и продолжали использовать регулируемые отрасли.
Обратная сторона — структурный словарь RTF беднее. Нет семантического деления на разделы, слабее контроль стилей, нет метаданных, достойных упоминания. Если документ существует в обоих видах, DOCX обычно даст более богатое дерево заголовков — Word в Markdown — более близкий современный аналог, и это лучший выбор, когда он у вас есть.
Странности кодировок в старых файлах
RTF старше, чем окончательная победа Unicode, и файлы, написанные примерно до середины 2000-х, это показывают. Несколько паттернов, которые стоит узнавать:
- Декларации кодовой страницы. Заголовок несёт что-то вроде
\ansicpg1252для западноевропейской Windows. Файл, созданный на классическом Mac или с кириллической либо центральноевропейской кодовой страницей, объявит другое, и если декларация неверна или отсутствует, символы с диакритикой выходят совершенно не теми буквами. - Шестнадцатеричные экранирования. Не-ASCII символы появляются экранированиями вида
\'92— именно это в CP1252 типографский правый апостроф, самый частый источник случайных символов в сконвертированных легаси-документах. - Unicode с запасными символами. Более новые файлы используют
\uN?, где число — кодовая точка Unicode, а завершающий символ — замена для читалок, слишком старых, чтобы её понять. Обработано правильно — вы получаете настоящий символ; обработано наивно — запасной вопросительный знак. - Липовый RTF. Немало инструментов выдаёт RTF, не вполне следующий спецификации: несбалансированные скобки, выдуманные управляющие слова, оборванные группы. Большинство конвертеров выкручивается, но битый файл может закончиться раньше времени и оставить вам полдокумента. Если вывод обрывается на середине предложения — подозревайте файл.
Практический совет: просмотрите сконвертированный Markdown на вопросительные знаки и квадратики там, где должны быть кавычки, тире и имена с диакритикой. Пять секунд — и вы знаете, можно ли доверять остальному.
Где это реально используют
- Разбор юридических документов. Нумерованные пункты остаются нумерованными в Markdown, так что можно спросить модель о конкретном положении и получить ответ, цитирующий настоящий пункт, а не пересказ.
- Миграция старого набора документации. Папка RTF-инструкций, сконвертированная в Markdown, прямиком ложится в git-репозиторий, где впервые становится доступной для diff и ревью.
- Клинические заметки. Табличные наблюдения выживают как таблицы, поэтому суммаризация уважает разделы, а не смешивает их.
- Подача ассистенту вместе с кодом. Сконвертируйте старую спецификацию, соедините её со своим репозиторием GitHub в виде текста — и модель увидит требование и реализацию вместе.
- Проверка размера перед вставкой. Счётчик токенов под результатом говорит, во что обходится длинный документ, — полезнее, чем узнавать это из ошибки обрезания.
Переключатель формата в верхней части страницы переводит между Markdown и обычным текстом и сохраняет уже выбранный файл, так что получить оба варианта и сравнить их — один клик.
Часто задаваемые вопросы
Как конвертировать RTF файл в Markdown?
Загрузите .rtf выше — и он вернётся в виде Markdown с форматированием, сохранённым там, где оно отображается чисто: жирный, курсив, списки и таблицы как таблицы с вертикальными чертами. Бесплатно, до 50 МБ на файл, без регистрации. Скачайте как .md.
Достаточно ли в RTF структуры, чтобы Markdown был оправдан?
Меньше, чем в DOCX, больше, чем в обычном тексте. RTF записывает форматирование, а не семантику: он знает, что строка была 18pt и жирной, а не что она была «Заголовком 1». Поэтому заголовки выводятся из внешнего вида, и вывод этот несовершенен. Жирный, курсив, списки и таблицы отображаются надёжно; структура документа — по мере возможности.
Будут ли мои заголовки распознаны правильно?
Иногда. Документ с визуально согласованными размерами заголовков обычно даёт разумную структуру. Тот, где автор варьировал размеры на глаз или выделял жирным обычный текст посреди абзаца, породит заголовки там, где их не задумывали. Прочитайте начало вывода и поправьте структуру руками — это быстрее, чем звучит, и нужно лишь один раз.
Почему RTF всё ещё всплывает в 2026 году?
В основном легаси-экспорт. Системы ведения дел, софт медицинских записей, старые бухгалтерские пакеты и государственные документные конвейеры по-прежнему выдают RTF, потому что это документированный, стабильный, независимый от приложений формат, который откроет любой текстовый процессор. Ровно поэтому конвертация папки таких файлов — работа, которая у людей всё ещё есть.
Markdown или обычный текст для RTF?
Markdown — когда файл представляет собой оформленный документ, который вы хотите оставить читаемым: письмо, отчёт, шаблон. Обычный текст — когда вы обрабатываете много файлов и вам нужны только слова, что для RTF случай более частый, учитывая, откуда такие файлы обычно берутся.
Остальной инструментарий
RTF — один из тринадцати форматов, которые здесь обрабатываются. File2Txt принимает любой из них через одну загрузку. Смежные страницы, о которых стоит знать: PDF в Markdown для документов с фиксированной вёрсткой, EPUB в Markdown для электронных книг, HTML в Markdown для сохранённых веб-страниц и ZIP в Markdown, когда нужно пройти целый архив старых файлов за один раз.
Для кода и веба есть конвертер GitLab, конвертер локальной папки и Web2Txt для живых страниц. Руководство по подготовке документов для LLM излагает общую аргументацию.
Repo2Txt создаёт и поддерживает v12hero — независимый разработчик, который делает нативные и веб-приложения с приоритетом приватности.