Выравнивание текста с Perl Pango - PullRequest
2 голосов
/ 06 октября 2011

Я использовал Pango с Perl, и он успешно отображает текст справа налево (Эта миссия кошмарная):

Код:

#!/usr/bin/perl -wT

use strict;
use warnings;
use Pango;
use Encode;

my $surface = Cairo::ImageSurface->create('argb32', 400, 100);
my $cr      = Cairo::Context->create($surface);
my $layout  = Pango::Cairo::create_layout($cr);

my $text    = decode('utf8','测试');
$layout->set_text("$text");

my $font    = Pango::FontDescription->from_string ('Serif Bold 50');
$layout->set_font_description($font);

Pango::Cairo::show_layout($cr, $layout);

$surface->write_to_png('pango.png');

Однако единственная проблема, с которой я столкнулся, заключалась в выравнивании текста.Я понятия не имею, как я централизую текст.Я прочитал документы Панго , но я не нашел много информации.Кто-нибудь знает как это сделать?

1 Ответ

2 голосов
/ 06 октября 2011

На основании моего чтения документов Я бы сказал $layout->set_alignment('center');, но я не использовал Pango и не пробовал его.

И кажется, что размер макета по умолчанию плотно оборачивает содержимое, поэтому, чтобы центрирование выполняло что-то, что вы видите, вам нужно установить ширину макета так, чтобы это происходило, например - $layout->set_width(400)

РЕДАКТИРОВАТЬ Добавить set_width() параграф

...