pango

Pango — библиотека для рендеринга текста и поддержки интернационализации в графических интерфейсах. Используется в GTK и других средах для отображения текста на разных языках.

Подпакеты
Имя Краткое описание
pango-devel Описание отсутствует
pango-doc Описание отсутствует
lib32-pango 32-битные библиотеки для pango

Домашняя страница: https://pango.gnome.org/

Доступные версии
Версия Релиз Архитектура Лицензия Дата сборки Размер Версии ОС Подробности
1.56.3 1.niceos5 x86_64 LGPL-2.0-or-later 25 апр. 2025 г. 1,127 ГиБ Подробности
Описание

Обзор библиотеки Pango для Найс.ОС

Библиотека Pango представляет собой мощный инструмент для работы с текстом в графических пользовательских интерфейсах. Она разработана для обеспечения высококачественного рендеринга текста, поддержки интернационализации и сложных систем письма. Pango является ключевым компонентом экосистемы GTK, широко используемой в средах рабочего стола, таких как GNOME. Устанавливается через пакетный менеджер dnf в Найс.ОС и других дистрибутивах на основе Fedora. Эта библиотека идеально подходит для разработчиков приложений, которым требуется точное отображение текста на разных языках и шрифтах.

Основные функции Pango

Pango предоставляет широкий набор возможностей для обработки текста, включая:

  • Рендеринг текста с поддержкой различных шрифтов и стилей;
  • Поддержка сложных систем письма, таких как арабский, деванагари и тайский;
  • Интернационализация текста с учетом направлений письма (слева направо и справа налево);
  • Интеграция с графическими библиотеками, такими как Cairo, для вывода текста на экране;
  • Разметка текста с использованием Pango Markup Language, напоминающего HTML.

Установка Pango в Найс.ОС

Для установки библиотеки Pango в Найс.ОС используется пакетный менеджер dnf. Выполните следующую команду для установки пакета:

sudo dnf install pango

После установки вы можете проверить версию библиотеки с помощью команды:

pango-querymodules --version

Также для разработки приложений с использованием Pango может потребоваться установка пакета разработчика:

sudo dnf install pango-devel

Использование Pango в разработке

Pango часто применяется в связке с GTK для создания приложений с графическим интерфейсом. Библиотека предоставляет API на языке C, что делает её доступной для интеграции в проекты на C, C++ и других языках через привязки. Рассмотрим простой пример использования Pango для рендеринга текста в GTK-приложении.

Пример кода на C для отображения текста с помощью Pango:

#include 
#include 

int main(int argc, char *argv[]) {
    gtk_init(&argc, &argv);
    
    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Pango Example");
    gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
    
    GtkWidget *label = gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(label), "Привет, мир! Это текст с использованием Pango Markup.");
    gtk_container_add(GTK_CONTAINER(window), label);
    
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_widget_show_all(window);
    
    gtk_main();
    return 0;
}

Для компиляции этого кода в Найс.ОС убедитесь, что установлены пакеты gtk3-devel и pango-devel, и используйте следующую команду:

gcc -o pango_example pango_example.c `pkg-config --cflags --libs gtk+-3.0`

Этот пример демонстрирует, как Pango Markup позволяет форматировать текст, добавляя жирное начертание и другие стили прямо в строке.

Поддержка интернационализации

Одной из ключевых особенностей Pango является поддержка интернационализации. Библиотека автоматически обрабатывает текст на языках с разными направлениями письма. Например, для арабского текста, который пишется справа налево, Pango корректно отображает символы и их соединения. Это делает Pango незаменимым инструментом для приложений, ориентированных на глобальную аудиторию.

Интеграция с Cairo

Pango тесно интегрируется с библиотекой Cairo, которая используется для 2D-графики. Это позволяет рендерить текст на различных поверхностях, включая окна, изображения и PDF-документы. Пример использования Pango с Cairo:

#include 
#include 

int main() {
    cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 400, 200);
    cairo_t *cr = cairo_create(surface);
    
    PangoLayout *layout = pango_cairo_create_layout(cr);
    pango_layout_set_text(layout, "Пример текста с Pango и Cairo", -1);
    
    cairo_move_to(cr, 50, 50);
    pango_cairo_show_layout(cr, layout);
    
    cairo_surface_write_to_png(surface, "output.png");
    
    g_object_unref(layout);
    cairo_destroy(cr);
    cairo_surface_destroy(surface);
    return 0;
}

Этот код создаёт изображение с текстом и сохраняет его в формате PNG. Для компиляции потребуются пакеты cairo-devel и pango-devel.

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

Использование Pango в разработке приложений для Найс.ОС предоставляет следующие преимущества:

  • Кроссплатформенность: Pango работает на различных платформах, включая Linux, Windows и macOS;
  • Гибкость: Поддержка множества шрифтов и систем письма;
  • Интеграция: Простая интеграция с GTK и Cairo для создания современных интерфейсов;
  • Производительность: Оптимизированный рендеринг текста даже при больших объёмах данных.

Типичные проблемы и их решения

При использовании Pango могут возникать проблемы с отображением некоторых шрифтов или некорректной обработкой текста на редких языках. Для решения таких проблем рекомендуется:

  • Убедиться, что установлены все необходимые шрифты (например, с помощью пакета fontconfig);
  • Обновить Pango до последней версии через dnf update pango;
  • Проверить документацию Pango на официальном сайте для специфических настроек.

Библиотека Pango — это надёжный выбор для разработчиков, создающих приложения с поддержкой текста на Найс.ОС. Благодаря своим возможностям и гибкости, она остаётся стандартом для рендеринга текста в графических приложениях на Linux.