From 89dce3dd1dc6c0ecd30023c8cf3c2167c789d199 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Fri, 16 Feb 2018 12:48:15 +0100 Subject: [PATCH] fix utf-8 rendering --- scripts/rsvg-render.pl | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/scripts/rsvg-render.pl b/scripts/rsvg-render.pl index 31d8519..f6679ec 100755 --- a/scripts/rsvg-render.pl +++ b/scripts/rsvg-render.pl @@ -6,6 +6,7 @@ use autodie; use XML::Twig; use Data::Dump qw(dump); +use utf8; die "unsage: $0 card/template.svg 201008159999 login Ime Prezime\n" unless @ARGV; @@ -13,7 +14,7 @@ my ($card_svg,$nr,$login,$ime,$prezime) = @ARGV; my $png = $ENV{PNG} || 0; -warn "# svg: $card_svg nr: $nr $ime $prezime\n"; +warn "# svg: $card_svg nr: $nr ime: $ime prezime: $prezime\n"; my $mapping = { '200908109999' => $nr, @@ -32,10 +33,15 @@ foreach my $existing ( glob $out . '*' ) { my $twig = XML::Twig->new( twig_handlers => { - 'text/tspan' => sub { - if ( my $replace = $mapping->{ $_->text } ) { - warn "# replace ", $_->text, " => $replace\n"; - $_->set_text( $replace ); + 'tspan' => sub { + my $el = $_; + my $text = $el->text; + utf8::decode( $text ); + warn "# tspan ", dump($text); + if ( my $replace = $mapping->{ $text } ) { + warn "# replace ", $text, " => $replace\n"; +# utf8::decode( $replace ); + $el->set_text( $replace ); } }, }, @@ -43,11 +49,6 @@ my $twig = XML::Twig->new( ); $twig->parsefile( $card_svg ); -while ( my($from,$to) = each %$mapping ) { - warn "# replace $from -> $to\n"; - $twig->subs_text( qr{$from}, $to ); -} - foreach my $layer ( qw( front back ) ) { foreach my $el ( $twig->get_xpath(q{g[@inkscape:groupmode="layer"]}) ) { -- 2.20.1