Что содержит документ и что с этим делает каждая конвертация
Файл .docx — это ZIP-архив с XML-файлами, и большая часть того, что делает его документом, — не текст. Есть стили — именованные определения вроде «Заголовок 1», общие для многих абзацев, — и есть прямое форматирование, когда кто-то выделил строку и нажал «полужирный». Выглядят они одинаково, а при конвертации ведут себя совершенно по-разному: стиль сохраняется как стиль, а фрагмент с прямым форматированием — только как форматирование, которое он дал. Рядом хранятся определения нумерации, записанные исправления, примечания, сноски, колонтитулы, надписи, встроенные шрифты и свойства документа — всё отдельно от текста абзацев.
Номера списков — самый наглядный пример. Word не хранит «1.» как текст; он хранит ссылку на определение нумерации и вычисляет номер при отрисовке страницы. Поэтому программы извлечения текста, которые проходят по XML абзацев, теряют все номера и выдают ненумерованный список. «DOCX в TXT» восстанавливает их — «1.», «1.1», «a)», «iii.», — включая списки, которые начинаются заново или продолжаются по всему документу.
Записанные исправления и примечания — это решение, а не случайность. Документ на рецензировании хранит и удалённый, и вставленный текст в одном файле, с разметкой. «DOCX в TXT» читает его так, будто все исправления приняты: вставки остаются, удаления опускаются. Примечания не включаются вовсе — обычно это и нужно, когда простой текст отправляется куда-то публично. Сноски и концевые сноски приходят как маркеры [1] с текстом сносок в конце, колонтитулы можно включить, а надписи появляются по одному разу в порядке чтения, не дублируясь и не теряясь.
Конвертация в PDF фиксирует разбивку на страницы. В текстовом редакторе то, где кончается четвёртая страница, пересчитывается при каждом открытии файла — по шрифтам и драйверу принтера того, кто его открыл. Поэтому у получателя таблица оказывается разорвана между двумя страницами, а у вас нет. В PDF такого пересчёта нет: разрывы страниц определены один раз, при конвертации, и теперь это свойство файла. «Word в PDF», «ODT в PDF» и «RTF в PDF» получают эти разрывы от полноценной вёрстки текстового редактора, а не от браузера, который её приблизительно имитирует, — поэтому надписи, фигуры и колонтитулы оказываются там, где их разместил автор.
Теряется возможность редактирования и перетекания текста. Стили становятся визуальным форматированием, структура — закладками, а текст больше не переносится под экран телефона. Встроенные в документ шрифты используются как есть; шрифт, который не встроен и недоступен конвертеру, заменяется ближайшим метрически совместимым, так что строки разрываются в тех же местах, хотя начертания букв отличаются.
У электронных книг нет страниц, которые нужно сохранять. EPUB, MOBI и AZW3 — форматы с перетекающим текстом: где кончается страница, решает приложение для чтения при выбранном вами размере шрифта, так что «страница 40» — не свойство книги, и разбивка на страницы в вашем PDF создаётся при конвертации по выбранным вами формату страницы и полям. В файле есть структура глав и оглавление — они становятся настоящими ссылками и закладками PDF. AZW3 содержит таблицу стилей и часто встроенные шрифты, поэтому выглядит так, как задумал издатель; у старых файлов MOBI таблицы стилей нет вовсе, поэтому сконвертированный MOBI выглядит проще, чем та же книга в приложении Kindle, — это приложение добавляло типографику, которой в файле никогда не было.
RTF — это текст насквозь, поэтому он переживает десятилетия смены программ. Его подвох — кодировка: RTF старше Юникода и хранит текст в старых кодовых страницах — центральноевропейской, кириллической, греческой, японской, — отсюда и «кракозябры» в плохо сконвертированных RTF. Здесь каждая из них декодируется правильно, наряду с современным текстом в Юникоде.
Когда браузер действительно не подходит
Одни из этих инструментов полностью сохраняют конфиденциальность файла, другие передают его на сервер, и здесь стоит быть точными. «PDF в текст», «TXT в PDF», «DOCX в TXT», «HTML в DOCX» и «Markdown в HTML» ничего никуда не отправляют: файл читается, конвертируется и записывается прямо здесь, и ничто не уходит. «Word в PDF», «ODT в PDF», «RTF в PDF», «HTML в PDF», «Markdown в PDF» и три конвертера электронных книг выполняют конвертацию на нашем сервере, потому что воспроизвести вёрстку страниц текстового редактора или правильно разбить книгу на страницы веб-страница не может. Отправляется разное: документы Word, ODT и RTF — как есть, а файлы Markdown и электронные книги сначала распаковываются и собираются в веб-страницу, и отправляется именно эта собранная страница. В любом случае она передаётся по зашифрованному соединению, конвертируется и удаляется, как только скачивание готово, — ничего не сохраняется, не записывается в журналы и никому не передаётся. Каждый из них также переключается на собственный конвертер, если сервер недоступен, и сообщает, когда это произошло и чего резервный вариант сохранить не смог.
Форматы, которые мы не открываем. Старые двоичные файлы .doc из Word 97–2003 без проблем конвертируются в «Word в PDF», потому что сервер читает их напрямую, — но работающий в браузере «DOCX в TXT» их не открывает и просит .docx. С защищённых паролем документов пароль нужно снять в программе, которая его установила. Книги Kindle с DRM не откроет ни один конвертер в мире — для этого защита и существует, — как и более новый формат Amazon KFX, который читает только приложение Kindle.
Работа с длинными документами. Главные документы, поля перекрёстных ссылок, указатели, автоматически создаваемые таблицы ссылок, слияние для рассылки и менеджеры библиографии — это функции текстового редактора, а конвертер — не текстовый редактор. Установите LibreOffice: он бесплатен, читает все форматы с этой страницы и для таких задач просто правильная программа.
Пакетная обработка и автоматизация. Эти инструменты работают, когда человек нажимает кнопку. Конвертировать тысячу файлов по расписанию — задача для командной строки, и бесплатные инструменты здесь превосходны: LibreOffice в режиме headless конвертирует всё, что открывает Writer, Pandoc переводит между Markdown, HTML, DOCX, LaTeX и десятком других форматов с большим контролем, чем любая веб-форма, а Calibre массово обрабатывает электронные книги и конвертирует между всеми незащищёнными форматами, какие есть.
Точная вёрстка в обратном направлении. Превратить сложно свёрстанный PDF обратно в редактируемый документ — задача на догадку, а не конвертация, и идеально её не решает никто — ни мы, ни дорогие настольные программы. Если исходный документ ещё существует, редактируйте его.
Как выбрать между похожими инструментами
Markdown в PDF или Markdown в HTML. Тот же парсер, разное назначение. «Markdown в PDF» даёт документ, разбитый на страницы, с выбранными вами шрифтом, форматом страницы и полями, заголовками в виде закладок PDF и оглавлением, которое ведёт на нужную страницу, — для печати, вложения или архива. «Markdown в HTML» даёт либо самостоятельную оформленную страницу, либо голый фрагмент для вставки в CMS — для публикации. Если нужен Markdown в Word, пройдите через «Markdown в HTML», а затем «HTML в DOCX».
Word в PDF, ODT в PDF или RTF в PDF. Внутри та же конвертация; отличаются они только тем, что им подаётся. «Word в PDF» — для .docx. «ODT в PDF» — для всего из LibreOffice, OpenOffice или Google Документов («Скачать» → «OpenDocument»). «RTF в PDF» — для WordPad, TextEdit и писем и отчётов, которые до сих пор выдают бизнес-системы. Выбрать страницу под своё расширение важно меньше, чем кажется, — важно то, что ни одна из них не «TXT в PDF», у которого форматирования для сохранения нет изначально.
TXT в PDF или Markdown в PDF. «TXT в PDF» набирает ваш текст как текст: один шрифт, ваши поля, никакой интерпретации. «Markdown в PDF» читает # и * как инструкции и создаёт заголовки, списки, таблицы, подсвеченный код и структуру закладок. Отдайте файл Markdown в «TXT в PDF» — и получите PDF со звёздочками.
EPUB, MOBI и AZW3 в PDF. Все три принимают больше, чем следует из названия, так что любой из них откроет ваш файл; страницы различаются, потому что различаются сами книги. EPUB и AZW3 (KF8) содержат таблицы стилей и часто встроенные шрифты и выходят оформленными. MOBI — более старый контейнер с минимальным форматированием, и его PDF намеренно простой. Если файл Kindle содержит обе вёрстки, используется более новая.
HTML в DOCX или Markdown в HTML. «HTML в DOCX» сначала раскладывает разметку, так что итоговый CSS — шрифты, размеры, цвета, отступы, рамки — записывается в документ как настоящее форматирование Word, со стилями заголовков Word, настоящими списками и таблицами, а не с закреплёнными на месте блоками. «Markdown в HTML» эту разметку создаёт. Ни один из них никогда не выполняет JavaScript.
DOCX в TXT или PDF в текст. Оба выдают простой текст, но читают очень разные вещи. Файл .docx всё ещё знает, что такое абзац, список и таблица, поэтому «DOCX в TXT» может восстановить номера списков и сохранить строки таблиц целыми. PDF знает только, где был нарисован каждый символ, поэтому «PDF в текст» угадывает строки и абзацы по положению — хорошо, но никогда не так точно по структуре. Если у вас есть и исходный документ, и его PDF, извлекайте текст из документа.
«DOCX в TXT» или сохранение в .txt из Word. Собственный экспорт Word в простой текст теряет нумерацию списков, портит таблицы и по-своему обращается с кодировкой. «DOCX в TXT» восстанавливает нумерацию, записывает таблицы либо строками через табуляцию, которые вставляются в электронную таблицу, либо выровненными столбцами, которые остаются ровными даже на китайском и японском, и сохраняет UTF-8 с нужными вам окончаниями строк.