Автор Тема: Perl Magick, GNU Ghostscript 8.15, русские буквы  (Прочитано 5208 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Вот код:
use Image::Magick;
print "Content-Type: image/png\\n\\n";
my $im = Image::Magick->new(size => \'540x525\');
$im->Read(\'xc:white\');
$im->Set(magick=>\'png\');
$im->Set(stroke => \'red\');
my $text = \'Посмотрим что тут да как\';
$im->Annotate(pointsize=>50, fill=>\'green\', text=>$text, x=>10, y=>200);
print $im->ImageToBlob();
exit;
Выводит закорючки.
Скачал коллекцию киррилических шрифтов.
gs-type1_koi8_fonts.tgz
Распоковал и положил в папочку фонтс. Добавил
font=>\'ariali8.pfm\'
пишет 500 ошибку.
Если посмотреть вывод скрипта в шеле, вижу:
GNU Ghostscript 8.15: Unrecoverable error, exit code 1
Error: /rangecheck in --readstring--
Operand stack:
   ariali8.pfm-ISO   ariali8.pfm-ISO   ariali8.pfm   Font   ariali8.pfm   221666   ariali8.pfm   --nostringval--   ariali8.pfm   (/bhome/part3/01/abik/gs/share/ghostscript/fonts/ariali8.pfm)   false   tables   --nostringval--   ()
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   3   3   %oparray_pop   4   3   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   7   4   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   %loop_continue   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %loop_continue   --nostringval--   12   --nostringval--   --nostringval--   false   1   %stopped_push   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1119/1686(ro)(G)--   --dict:0/20(G)--   --dict:72/200(L)--   --dict:17/17(ro)(G)--   --dict:1119/1686(ro)(G)--   --dict:28/50(ro)(G)--   --dict:6/40(L)--
Current allocation mode is local
Current file position is 263

Чтобы такого придумать, чтобы наконец заработали русские шрифты?
Ну к чему все это, лучше бы водки выпили...

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #1 : 02 Июня 2005, 12:20:03 »
а попробуйте установить cyrillic (модуль полезный во многих ситуациях) и переписать код:

use Image::Magick;
use cyrillic qw(win2utf);

print "Content-Type: image/png\\n\\n";
my $im = Image::Magick->new(size => \'540x525\');
$im->Read(\'xc:white\');
$im->Set(magick=>\'png\');
$im->Set(stroke => \'red\');
my $text = \'Посмотрим что тут да как\';
$text = win2utf($text);
$im->Annotate(pointsize=>50, fill=>\'green\', text=>$text, x=>10, y=>200);
print $im->ImageToBlob();
exit;

в моем случае это работает и для Image::Magick, и для GD
пока-пока. :)

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #2 : 02 Июня 2005, 13:24:31 »
AnnA, вывод немного видоменяеться (появились всякие символы вроде 1/4, 1/2 и т.п.). Но всё равно ничего хорошего:(
Не могли бы вы со своего хостинга скинуть папочку fonts мне на мыло: gleb[\'тяф!\']stalnoy.ru ?
Обычно она располагается по адресу:
/путь/к/gs/share/ghostscript/fonts
Ну к чему все это, лучше бы водки выпили...

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #3 : 02 Июня 2005, 13:35:53 »
glebushka ну конечно я могла бы. мне и не жалко вовсе.
только у меня- в скрипте написано:
my $font = \'./data/ttf/arial.ttf\';
my $pix_font = \'./data/ttf/hoog0555_cyr2.ttf\';
соот-сно по указанным путям я самолично закачивала эти самые шрифты. ну, что скидывать?
arial у вас и так есть, понятное дело, а втрой могу скинуть
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #4 : 02 Июня 2005, 13:41:30 »
а. погодите-ка. в какой кодировке вы пишите $text = \'Посмотрим что тут да как\'? именно в win или в какой-то другой?
мы ведь пишем $text = win2utf($text);
пока-пока. :)

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #5 : 02 Июня 2005, 13:48:12 »
AnnA, Arial это то который из виндавса? Если да, то кидать нет смысла:( После того, как я жёстко прописал шрифт по абсолютному пути у меня вообще перестал выводится какой бы то ни было текст:(
Ну к чему все это, лучше бы водки выпили...

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #6 : 03 Июня 2005, 03:42:04 »
AnnA, упс, не заметил ваш ответ последний. Конечно win:) Но чтоб себя проверить. Я специально в браузер попробовал вывести текст, отконвертированный в утф8 с помощью этого модуля.
Ну к чему все это, лучше бы водки выпили...

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Perl Magick, GNU Ghostscript 8.15, русские буквы
« Ответ #7 : 03 Июня 2005, 13:25:56 »
и чего, корючки вышли? ) а ГД у вас пишет по-русски?
пока-пока. :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28