The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Русский язык в графиках GD::Graph"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Русский язык в графиках GD::Graph"  +/
Сообщение от auto_tips (??) on 08-Июн-04, 12:47 
Для рисования русских букв, слов на графиках, построенных модулем perl GD::Graph необходимо все
переменные с русским тексом перевести в кодировку utf8.
Например модулем Unicode::Map8:
    my $unicoded_txt = Unicode::Map8->new("cp1251");

Дополнительно нужно указать ttf шрифт, поддерживающий unicode. Например виндовый arial.ttf:
    $graph->set_value_font('/usr/share/fonts/arial.ttf', 9);

Опробовано с p5-GD-Graph-1.43 и p5-Unicode-Map8-0.12.

URL:
Обсуждается: http://www.opennet.dev/tips/info/693.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Русский язык в графиках GDGraph"  +/
Сообщение от D.A. (??) on 08-Июн-04, 12:47 
Я сделал проще - нашел ttf шрифт с набором символов koi8-r.... - их предостаточно, и  русский отображается на ура!!!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Русский язык в графиках GD::Graph"  +/
Сообщение от dawnshade email on 08-Июн-04, 14:28 
Угу, только вот в моем случае была 1251 кодировка :((
Вот и пришлось наворачивать.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Русский язык в графиках GD::Graph"  +/
Сообщение от TLoDSnake email on 01-Сен-04, 17:57 
use GD;
    use GD::Graph;
    use GD::Graph::bars;
    use Unicode::Map8;
    my @data = (
    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
    [    1,    2,    5,    6,    3,  1.5,    1,     3,     4],
    [ sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ]
    );
    my $graph = GD::Graph::bars->new(400, 300);
    $graph->set_title_font('/data/fonts/arial.ttf', 20);    
    my $r = Unicode::Map8->new("cp1251");
    my $title = $r->to16('Ðóññêèé çàãîëîâîê');
    $graph->set(
      x_label           => 'äíè',
      y_label           => 'Õèòû',
      title             => "Ðóññêèé òåêñò $title",
      y_max_value       => 8,
      y_tick_number     => 8,
      y_label_skip      => 2
     ) or die $graph->error;
    my $gd = $graph->plot(\@data) or die $graph->error;

Русского нету ((

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Русский язык в графиках GD::Graph"  +/
Сообщение от AW on 05-Май-05, 16:30 
my $title = $r->to16('Заголовок');  - так не работает.....
а вот так:
my $title = $r->tou('Заголовок');  - работает.....
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Русский язык в графиках GD::Graph"  +/
Сообщение от falcn on 09-Май-05, 13:43 
Так как на моей машине Map8 не работает, пришлось использовать альтернативное решение с более распостранённым модулем
Этот пример работает с Image::Magick

use encoding 'cp1251';
use Unicode::String qw(utf8);
my $title = utf8('Заголовок');

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Русский язык в графиках GD::Graph"  +/
Сообщение от TLoDSnake on 05-Дек-05, 18:23 
Решение совсем влоб
sub stringToDec{
my $ustring = '';
for my $char (split //, shift){
if(ord($char)>127){
$ustring .= "&#" . (unpack("U", $char)+848) . ";";
}else{
$ustring .= $char;
}
}
return $ustring;
}

http://www.mysterria.com/programming_notes/GD.html

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Русский язык в графиках GD::Graph"  +/
Сообщение от worldmind email on 06-Сен-10, 12:22 
Достаточно сказать
use utf8;

и как написано http://zaakk.com/post/moj-post-v-pesochnicu-xabra/
указать unicode шрифты для разных элементов

$graph->set_title_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf",8);
$graph->set_value_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf",8);
$graph->set_label_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf",8);

и всё будет нормально работать

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру