[РЕШЕНО] Крокозябры при выводе PNG

Moderator: DenisBY

Locked
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

[РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

При выводе отчётов в PDF, PNG, CSV, используется UTF-8, как указана локаль OTRS. При выводе PNG при этом на рисунке, вместо надписей, крокозябры из-за несоответствия кодировки.

Локаль машины: en_US.UTF-8 (люблю английский в логах и сообщениях системы)

Посоветуйте, пожалуйста, куда копать?

(Простите за создание топика не в разделе помощи)
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

1. Установить X11 Font subsystem.
2.Установить шрифты TTF, к примеру, DejaVu LGC.
3. В /Kernel/System/Stats.pm вставить настройку шрифтов для элемента GD::Graph , в часть # build plot data

Code: Select all

    # build plot data
    my @PData = ( $HeadArrayRef, @StatArray );
    my ( $XSize, $YSize ) = split( m{x}x, $Param{GraphSize} );
    my $graph = $GDBackend->new( $XSize || 550, $YSize || 350 );
# Added  20101226 9:05
$graph->set_title_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",12);
$graph->set_legend_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
$graph->set_x_label_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
$graph->set_y_label_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
#end of added
    $graph->set(
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
vital83
Znuny newbie
Posts: 1
Joined: 19 May 2011, 01:02
Znuny Version: 2.4.5

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by vital83 »

так же стоит добавить:
$graph->set_x_axis_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",7);
$graph->set_y_axis_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",7);
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

так же стоит добавить:
$graph->set_x_axis_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",7);
$graph->set_y_axis_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",7);
Спасибо, про оси я тогда забыл. Но на них русских букв не было, а шрифт по-умолчанию смотрелся неплохо.
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
VladDV
Znuny newbie
Posts: 5
Joined: 08 Sep 2011, 05:10
Znuny Version: 3.0.10
Real Name: Владимир

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by VladDV »

Добрый день. Возникла точно такая же проблема. Кракозябры в png. OTRS v. 3.0.10, установлен из исходников на Linux Debian Lenny. Все модули perl, кроме поддержки китайского, установлены. Попробовал добавить указанные строки:

Code: Select all

$graph->set_title_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",12);
$graph->set_legend_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
$graph->set_x_label_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
$graph->set_y_label_font("/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf",8);
Однако при построении отчета ругается на несуществующие методы set_legend_font, set_x_label_font и т.д.
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

VladDV wrote: Однако при построении отчета ругается на несуществующие методы set_legend_font, set_x_label_font и т.д.
Попробуйте проверить, все ли необходимые модули Perl собраны по списку, указанному в инструкции по ручной установке (подозреваю, что не установлены GD, GD::Graph).

Возможно, само название модуля есть в сообщении об ошибке.
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
VladDV
Znuny newbie
Posts: 5
Joined: 08 Sep 2011, 05:10
Znuny Version: 3.0.10
Real Name: Владимир

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by VladDV »

Так я проверял командой ./bin/otrs.CheckModules.pl, на всех модулях стоит OK.

А вот ошибка такая Can't locate object method "set_legend_font" via package "GD::Graph::pie". Получается он требует модуль, которого нет в списке требований. Сейчас попробую поставить, спасибо за хорошую мысль.
VladDV
Znuny newbie
Posts: 5
Joined: 08 Sep 2011, 05:10
Znuny Version: 3.0.10
Real Name: Владимир

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by VladDV »

Установил - не помогло. Та же ошибка...
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

VladDV wrote:Установил - не помогло. Та же ошибка...
Функции имеются ввиду из: http://cpan.uwinnipeg.ca/htdocs/GDGraph ... ph.pm.html
У графика типа "пирог" действительно нет тех функций, которые вы хотите вызвать.
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
VladDV
Znuny newbie
Posts: 5
Joined: 08 Sep 2011, 05:10
Znuny Version: 3.0.10
Real Name: Владимир

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by VladDV »

Значит решение в этой теме не подходит? Получается, что для одного вида графиков оно заработает, зато другие виды вообще перестанут работать...
qwer1987
Znuny newbie
Posts: 15
Joined: 25 Dec 2010, 03:11
Znuny Version: 2.4.7
Location: Europe/Kiev

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by qwer1987 »

VladDV wrote:Значит решение в этой теме не подходит? Получается, что для одного вида графиков оно заработает, зато другие виды вообще перестанут работать...
Если речь идёт об универсальном решении, то указанное мной таковым не является, а не работает оно лишь для вида "пирог", каковой у меня не используется.

Я надеюсь, что указанное мной решение может помочь натолкнуть вас на правильный ход мысли. Вид графика, который строится, можно проверять, и не вызывать несуществующие методы.
OTRS 3.0.11 (RPM) + ITSM with PostgreSQL 8.1 on Centos 5.7 x86_64 on both production and testing machines.
VladDV
Znuny newbie
Posts: 5
Joined: 08 Sep 2011, 05:10
Znuny Version: 3.0.10
Real Name: Владимир

Re: [РЕШЕНО] Крокозябры при выводе PNG

Post by VladDV »

Теперь понятно. Просто в перле не силен, сразу не увидел, что функций нет только для пирога. Спасибо за помощь! Буду допиливать.
Locked