Skip to content
markdownfontsmultilingualpdf

Встраивание многоязычных шрифтов Unicode в PDF без потери символов

Узнайте, как md2pdf встраивает шрифты Unicode через fontkit и pdf-lib для корректного отображения иероглифов CJK, кириллицы и акцентов без артефактов.

Серьезным недостатком базовых конвертеров Markdown в PDF является повреждение шрифтов при обработке многоязычного текста. Если в документе встречаются иероглифы Китая, Японии и Кореи (CJK), кириллица или символы с диакритикой, а движок PDF не имеет встроенных шрифтов, вместо букв отображаются пустые прямоугольники (так называемые «тофу»). В md2pdf полноценное встраивание шрифтов Unicode гарантирует четкое отображение символов на любых устройствах.

В этой статье объясняется работа клиентского встраивания шрифтов с помощью pdf-lib и @pdf-lib/fontkit, оптимизация наборов символов и предотвращение выпадения глифов.

Проблемы отображения Unicode в документах PDF

Базовый стандарт PDF включает лишь 14 стандартных шрифтов (Helvetica, Times и другие), поддерживающих только латиницу и стандартные западноевропейские знаки.

  • Эффект «тофу»: Нераспознанные символы Unicode отображаются как пустые квадраты (□).
  • Сложность наборов CJK: Восточноазиатские языки насчитывают десятки тысяч иероглифов, что требует оптимизации размера внедряемых шрифтов.
  • Диакритические знаки: Символы турецкого языка (ç, ğ, ı, ö, ş, ü) и кириллические алфавиты требуют точной кодовой поддержки для сохранения читаемости.
Multilingual Glyph Coverage in md2pdf:
- Latin & Extended Latin: English, Spanish, French, Portuguese, Turkish
- Cyrillic Alphabets:     Russian, Ukrainian, Bulgarian
- East Asian Ideographs:  Simplified Chinese (简体中文), Japanese (日本語)
- Hangul Syllables:       Korean (한국어)

Технология внедрения шрифтов с @pdf-lib/fontkit

md2pdf использует библиотеку @pdf-lib/fontkit для чтения векторных таблиц TrueType (TTF) и OpenType (OTF) прямо в браузере:

  1. Загрузка на клиенте: Качественные открытые гарнитуры (Noto Sans, Source Han Sans, Roboto Mono) загружаются по мере необходимости в зависимости от языка статьи.
  2. Анализ глифов: Движок fontkit сканирует текст Markdown и сопоставляет каждый символ с его векторным контуром.
  3. Встраивание в структуру PDF: Библиотека pdf-lib прописывает векторные контуры в итоговый файл, делая его полностью самодостаточным.

Поддержка типографики для всех девяти языков

md2pdf обеспечивает естественное типографическое качество для девяти поддерживаемых языков:

  • Английский, испанский, французский, португальский: Аккуратная латиница с поддержкой акцентов, седилей и тильд.
  • Турецкий: Точное отображение букв «i» с точкой и без (İ / i, I / ı) и специальных согласных.
  • Русский (Кириллица): Пропорциональные кириллические шрифты, гармонирующие с общим стилем документа.
  • Японский, китайский и корейский: Поддержка иероглифов CJK и корейского алфавита Хангыль с оптимальным межбуквенным интервалом.

Полная автономность и независимость от устройства

Благодаря внедрению векторных очертаний глифов прямо в тело файла PDF:

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

Создание многоязычных документов в md2pdf

Конвертируете ли вы документацию API на японском, спецификацию на русском или многоязычный международный справочник — md2pdf выполнит настройку шрифтов автоматически. Вставьте текст и получите безупречный PDF без единого поврежденного символа.

Создайте свой PDF из README

Бесплатно, без регистрации и полностью в браузере.

Открыть конвертер