Гид по технологиям

Pandoc: как надежно конвертировать документы в Linux

8 min read Linux Обновлено 25 Apr 2026
Pandoc: конвертация документов в Linux
Pandoc: конвертация документов в Linux

Файл-обложка статьи: ноутбук с текстовым редактором и терминалом

К чему подходит эта статья

Эта статья предназначена для пользователей Linux и документоводов, которые:

  • хотят избежать проблем с совместимостью форматирования при обмене файлами;
  • предпочитают писать в простом формате (Markdown) и конвертировать в необходимые форматы;
  • нуждаются в автоматизации пакетной конвертации и стандартизации стилей в DOCX/ODT.

Важно: здесь описаны практические техники и безопасные шаблоны команд — без предположений о конкретных шрифтах в вашей ОС.

Быстрое введение и пример установки

Pandoc — это программа командной строки, которая читает и пишет множество форматов документов. Небольшая справка: “read” (чтение) — формат входного файла, “write” (запись) — формат выходного.

На Ubuntu и производных установка сводится к одной команде:

sudo apt-get install pandoc

После установки можно конвертировать Markdown в HTML:

pandoc -o myfile.html myfile.md

Здесь флаг -o указывает имя выходного файла, а расширение файла подсказывает pandoc желаемый формат.

Pandoc: пример конвертации Markdown в HTML (исходник/результат)

Основные флаги и шаблон простого цикла для пакетной обработки

  • -r, –read: указать входной формат (например, markdown, docx).
  • -w, –write: указать выходной формат (например, html, docx, pdf).
  • -o: имя выходного файла.
  • –reference-docx / –reference-odt: шаблон оформления для DOCX/ODT.

Пример конвертации Markdown в MediaWiki:

pandoc -r markdown -w mediawiki -o markdown.wiki markdown.md

Если у вас папка с DOCX-файлами и нужно конвертировать их в Markdown, можно использовать цикл bash. Исходный пример:

for file in *
do
 pandoc -r docx -w markdown -o "$file".md "$file"
done

Этот вариант оставит имена вида filename.docx.md. Лучше сразу переименовать корректно — пример скрипта ниже.

Скрипт для пакетной конвертации с переименованием

Создайте файл convert-docx-to-md.sh:

#!/bin/bash
shopt -s nullglob
for f in *.docx; do
  base="${f%.docx}"
  echo "Конвертация: $f -> $base.md"
  pandoc -r docx -w markdown -o "$base.md" "$f"
done

Сделайте исполняемым: chmod +x convert-docx-to-md.sh и запустите.

Совет: проверяйте пару файлов вручную перед массовой обработкой.

Пакетная конвертация: результат в терминале

DOCX/ODT reference-файлы: кастомизация оформления при конвертации

Если вы хотите сохранить фирменное форматирование (шрифты, нумерация заголовков, стили), используйте reference-файл — это DOCX или ODT с нужной вам разметкой. Pandoc применит стили при конвертации Markdown в DOCX/ODT.

Пример команды для ODT:

pandoc -r markdown -w odt --reference-odt=/home/user/path/to/ref-file.odt -o lowriter.odt lowriter.md

Или для DOCX:

pandoc -r markdown -w docx --reference-docx=/home/user/path/to/ref-file.docx -o output.docx input.md

Как подготовить reference-файл:

  1. Откройте LibreOffice (или Word) и создайте документ со всеми стилями: Heading 1, Heading 2, Normal, Quote, Code, Table, Caption и т.д.
  2. Настройте шрифты, отступы, нумерацию и таблицы стилей.
  3. Сохраните документ как .docx или .odt и используйте его как reference-файл.

Применение стилей reference-файла отображается в выходном документе

Важно: шаблон влияет на соответствие стилей, но не гарантирует абсолютной идентичности рендеринга между системами — шрифты и их метрики зависят от платформы.

Результат применения reference-файла: стили перенесены в выходной документ

Генерация PDF: несколько вариантов и рекомендации

Есть два распространённых подхода для получения PDF из Markdown через pandoc:

  1. Лёгкий путь — использовать wkhtmltopdf: pandoc сначала превращает Markdown в HTML, затем wkhtmltopdf генерирует PDF.
  2. Профессиональный путь — установить TeX-пакеты (LaTeX/TeX Live), чтобы pandoc использовал TeX как backend и дал более типографски корректный результат.

Установка wkhtmltopdf и использование:

pandoc -r markdown -w html -o nicepub.pdf nicepub.md

Если вы хотите воспользоваться наборами TeX и получить лучшее управление типографикой:

sudo apt-get install --install-suggests pandoc

Затем можно прямо просить pandoc сгенерировать PDF через TeX:

pandoc -r markdown -w pdf -o nicepub-tex.pdf nicepub.md

Отличия:

  • wkhtmltopdf требует установки одного пакета и удобен для HTML-ориентированных шаблонов; проще при использовании CSS.
  • TeX/LaTeX даёт более аккуратную типографику, автоматическую нумерацию страниц и лучше управляет размещением фигур и таблиц, но требует много зависимостей.

Пример PDF, сгенерированного через TeX, с нумерацией страниц и шрифтами по умолчанию

Совет: если цель — печать книги или длинного отчёта, выбирайте TeX; для быстрых вёрсток под веб/CSS — wkhtmltopdf.

Создание электронных книг (EPUB)

Pandoc умеет собирать EPUB и EPUB3 из Markdown — удобно для создания лёгких электронных книг.

pandoc -r markdown -w epub -o mybook.epub mybook.md

При необходимости можно добавить метаданные (title, author, date) в шапку Markdown-файла (YAML-метаданные). Пример заголовка в Markdown:

---
title: "Моя книга"
author: "Автор Имя"
year: 2025
---

Пример обложки и структуры EPUB после конвертации

Расширенная функциональность и Markdown-диалект pandoc

Pandoc поддерживает расширенную версию Markdown: метаданные, таблицы, расширенные списки, оформление кода, подчёркивания и зачёркивания, верхние и нижние индексы. Это делает pandoc удобным инструментом не только для конвертации, но и для написания документов с богатой семантикой.

Короткие примечания по возможностям:

  • Метаданные: используются YAML-блоки в начале файла.
  • Таблицы: более удобная и мощная поддержка по сравнению с “vanilla” Markdown.
  • Поддержка блоков с подсветкой синтаксиса при указании языка.

Больше опций смотрите в официальной документации на pandoc.org.

Интеграция с графическими приложениями и редакторами

Pandoc — это утилита командной строки, но удобство можно повысить с помощью GUI или интеграции в редакторы. Некоторые популярные варианты:

  • PanDocElectron — графический интерфейс с выпадающими списками форматов и выбором input/output через диалог.
  • Плагины для редакторов (Atom, VSCode, Sublime) — позволяют сохранять текущий файл в выбранный формат через pandoc.
  • Использование систем сборки (Makefile, npm-скрипты) для автоматизации сборки документации, PDF и EPUB.

Установка PanDocElectron и интерфейс приложения

Пример запуска PanDocElectron: в каталоге приложения выполните

npm start

Интерфейс PanDocElectron: выбор форматов и файлов

Пример интеграции с редактором Atom: используйте пакеты pandoc-convert и build-tools, чтобы запускать команды pandoc прямо из редактора.

Примеры конфигураций пакетов в Atom для вызова pandoc

Примеры действий build-tools для запуска pandoc из редактора

Результат вызова сборки: сохранение в нужном формате через build command

Когда pandoc не сработает идеально: ограничения и типичные проблемы

  • Сложные макеты Word/Excel/PowerPoint: pandoc не воспроизводит произвольную верстку и макросы.
  • Специфические поля форм (формы Word), защищённые документы и «обработанные» шрифты — pandoc может прочитать содержимое, но стили могут слететь.
  • Точные страницы макета (фактурная верстка каталога, плакатов) — лучше использовать исходную DTP-систему.

Контрпример: если документ содержит встроенные фигуры со сложной привязкой к тексту, при конвертации в Markdown позиционирование может потеряться.

Важно: pandoc отлично подходит для семантической миграции контента, но не для точного сохранения визуального позиционирования.

Альтернативы и сочетания инструментов

  • LibreOffice (headless) / unoconv — можно использовать для пакетной конвертации офисных форматов; часто полезно в связке с pandoc.
  • wkhtmltopdf — для HTML → PDF, когда важны CSS-стили.
  • Calibre — для продвинутой сборки электронных книг и массовой обработки форматов EPUB/MOBI.

Комбинация инструментов часто даёт лучший результат: например, сначала LibreOffice для приведения DOCX к стандартному виду, затем pandoc для преобразования в Markdown.

Практический playbook: от идеи до готового файла

  1. Написание: используйте Markdown с YAML-метаданными.
  2. Локальные проверки: просматривайте результат в HTML/浏览ере или через markdown-рендерер.
  3. Применение стиля: подготовьте reference.docx или reference.odt.
  4. Тестовая конвертация: переведите 1–2 файла в DOCX/ODT/PDF и проверьте форматирование.
  5. Пакетная обработка: запустите скрипт или Makefile.
  6. Контроль качества: проверьте ключевые элементы (таблицы, списки, изображения, подписи).

Пример Makefile для сборки разных форматов:

SRC=mybook.md
PDF=mybook.pdf
EPUB=mybook.epub
DOCX=mybook.docx

all: $(PDF) $(EPUB) $(DOCX)

$(PDF): $(SRC)
    pandoc -r markdown -w pdf -o $@ $<

$(EPUB): $(SRC)
    pandoc -r markdown -w epub -o $@ $<

$(DOCX): $(SRC)
    pandoc -r markdown -w docx --reference-docx=ref.docx -o $@ $<

clean:
    rm -f $(PDF) $(EPUB) $(DOCX)

Контрольные списки по ролям

Для автора:

  • Пишите в Markdown с явными заголовками и подписью картинок.
  • Вставляйте изображения относительными путями и указывайте подписи в тексте.
  • Поддерживайте YAML-метаданные (title, author, date).

Для редактора/верстальщика:

  • Подготовьте reference-файл с нужными стилями.
  • Проверьте соответствие шрифтов и нумерации заголовков.
  • Тестируйте печать и оглавление.

Для администратора/инженера CI:

  • Автоматизируйте сборку через Makefile или CI (GitHub Actions, GitLab CI).
  • Убедитесь, что все зависимости (pandoc, TeX или wkhtmltopdf) установлены на runners.
  • Логируйте ошибки конвертации и делайте артефактами собранные PDF/EPUB.

Отладка: частые ошибки и способы их исправления

  • “pandoc: Unknown writer ‘pdf’” — означает, что TeX-пайплайн не установлен; либо установите TeX Live, либо используйте HTML + wkhtmltopdf.
  • Пропавшие изображения — проверьте пути и относительность; для EPUB изображения должны быть доступны при сборке.
  • Нестандартные шрифты в DOCX не отображаются — включите их в reference-файл и убедитесь, что получатели имеют эти шрифты или используйте встроенные доступные шрифты.

Краткий глоссарий (1 строка на термин)

  • Markdown — простой текстовый формат разметки для писательства.
  • DOCX/ODT — форматы документов Word/LibreOffice с поддержкой стилей.
  • Reference-файл — DOCX/ODT-шаблон, применяемый при конвертации.
  • wkhtmltopdf — инструмент для преобразования HTML в PDF.
  • TeX/LaTeX — типографическая система для создания печатных документов.

Советы по совместной работе и миграции

  • При миграции большого архива делайте тестовую выборку (5–10 файлов разных типов) и сравните результаты.
  • Документируйте style-guides и держите reference-файлы в репозитории вместе с процессом сборки.
  • Автоматизируйте проверки в CI: при изменении Markdown собирайте целевые форматы и выкладывайте артефакты.

Примеры реальных задач и как их решать

Задача: получить DOCX с фирменным стилем для клиента на основе Markdown. Решение:

  1. Подготовьте reference.docx с корпоративными стилями.
  2. Запустите:
pandoc -r markdown -w docx --reference-docx=reference.docx -o report.docx report.md
  1. Проверьте заголовки и списки; при необходимости поправьте стили в reference.docx.

Задача: собрать книгу в EPUB и PDF в CI при каждом коммите.

Решение: добавьте Makefile и настройте CI-конвейер, устанавливающий pandoc и wkhtmltopdf или TeX, затем запускающий make all.

Итог и рекомендации

Pandoc — это надежный инструмент для перевода контента между форматами. Он не заменит специализированные инструменты для графического дизайна и точной верстки, но прекрасно подходит для:

  • единообразной подготовки документов;
  • автоматизации конвертации в CI;
  • генерации электронных книг и печатных PDF из одного Markdown-источника.

Если вам важно точно контролировать стиль для конечного DOCX/ODT, инвестируйте время в подготовку reference-файлов; если нужна быстрая печать — используйте TeX; если требуется точная веб-верстка на основе CSS — wkhtmltopdf.

Если вы часто конвертируете документы и сталкиваетесь с проблемами совместимости, опишите конкретный кейс в комментариях — и вы получите практическую подсказку по применению pandoc в вашем сценарии.

Image Credit: Nirat.pix via Shutterstock.com

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Убрать раздражающие функции Facebook — руководство
Социальные сети

Убрать раздражающие функции Facebook — руководство

Приложения по умолчанию на Android — настройка и управление
Android.

Приложения по умолчанию на Android — настройка и управление

Установить REMnux в VirtualBox — руководство
Кибербезопасность

Установить REMnux в VirtualBox — руководство

Список выполненного: мотивация и шаблоны
Продуктивность

Список выполненного: мотивация и шаблоны

Как сохранить веб‑страницу для офлайн‑чтения
Интернет

Как сохранить веб‑страницу для офлайн‑чтения

Как подключить DualSense к Mac
Гайды

Как подключить DualSense к Mac