JPGraph и работа с ним.

Решил сделать небольшой социальній банер, как бы статистику по дням. Начал выбирать каким софтом выводит график. Оказалось, что есть масса, просто куча, софта который чтото предположительно должен делать. Но на выходе все эти классы, которые долджны работать — не делали ничего, кроме показа ошибок.

В конце концов попался на глаза класс jpgraph, который написан полностью на PHP, причем вроде как есть дистрибутив, что под 4-ю, что под 5-ю версию этого популярного интерпретатора.

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

  • Идем в конфигурационный файл ./jpgraph/jpgraph_ttf.inc.php и настраиваем там следующие параметры (изменяя их)
    define(«LANGUAGE_CYRILLIC»,true);
    define(«CYRILLIC_FROM_WINDOWS»,true);
    define(‘LANGUAGE_CHARSET’, ‘windows-1251’ );
  • далее в другом конфигурационном файле jpg-config.inc.php указываем путь к каталогу со шрифтами. Я сделала абсолютный путь, но это не верно по сути, и более правильно делать относительный путь. Равно как и каталог со шрифтом ложить во внутрь «классовой»  директорииdefine(‘TTF_DIR’,’/тут путь/fonts/’);
  • Понятно, в этот каталог надо скопировать русский шрифт, «Вердана». Взять его в вин32 или линукс дистрибутиве;
  • Далее при выводе заголовка указываем:
    $graph->title->SetFont(FF_VERDANA);
  • Ну и выводим:
    $graph->title->Set( «Тест» ) ;

После  этого «у меня заработало». Если не выходит — пишите. Ибо я так понял с «жпграфом» не все так просто. Например, надо вроде как он не учитывает кодировку веб-сервера по-умолчанию. Я ее задаю в .htaccess как AddDefaultCharset UTF-8, а вывод делаю через cp1251, просто прописывая редактором, нужну строку.

Вот рабочий пример, того, что я делал.
Тема не веселая, но нужная.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *