Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10888[/thread]

Tk::Canvas->postscript und -overstrike Text

Leser: 2


<< >> 3 Einträge, 1 Seite
Spieler
 2007-11-25 01:43
#102968 #102968
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

kennt jemand eine Möglichkeit das Fontattribut '-overstrike' beim Export von PostScript aus einem Tk::Canvas zu erhalten?
Der -fontmap Parameter (Tk::Canvas->postscript), sheint nur für [Family, size] empfänglich zu sein.

Man kann den Text natürlich mit einer Linie durchstreichen - aber eleganter wäre es doch, wenn -overstrike auch im PostScript erscheinen würde.

Grüße, Christoph
ptk
 2007-11-25 13:51
#102976 #102976
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Noch schlimmer: wenn man Tk mit XFT=1 compiliert, dann wird -overstrike und -underline komplett ignoriert.
Spieler
 2007-11-26 18:32
#103074 #103074
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe mir jetzt so beholfen (Da in meinem Fall nur einzeiliger Text vorkommt, funktioniert das):

Code: (dl )
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
29
require Tk::Canvas;
require Tk::Font;
use strict;
use warnings;

sub Tk::Canvas::postscript_overstrike{
my $self = shift;
my $start = time();
my @items = $self->find('all');
for my $item (@items){
next unless ($self->type($item) eq 'text');
my $font = $self->itemcget($item,'-font');
next unless($font->actual('-overstrike'));
my @bb = $self->bbox($item);
my $color = $self->itemcget($item, '-fill');
my $line = $self->createLine(
$bb[0],
($bb[3] + $bb[1]) / 2,
$bb[2],
($bb[3] + $bb[1]) / 2,
-fill => $color,
-tags => ['overstrike'],
);
}
my $ps = $self->postscript(@_);
$self->delete('overstrike');
return $ps;
}
1;


Grüße, Christoph
<< >> 3 Einträge, 1 Seite



View all threads created 2007-11-25 01:43.