SVG-VCD

 view release on metacpan or  search on metacpan

bin/VertFigure  view on Meta::CPAN

}

my $st = $svg->group(style => { 'font-family' => $vcd->config("font-family"),
				'font-size' => $vcd->config("font-size"),
				fill => 'black',
		     });

foreach my $i (1 .. $n) {
    my $taxon = $vcd->taxon($i-1);
    my $data = $taxon->field("data");
    my($cdata, $ddata) = split('\|', $data);
    $ddata = "" if !defined $ddata;
    my $nc = length($cdata);
    my $nd = length($ddata);

    my $text = $st->text(x => 10, 'y' => $th * $i + $tyo);
    my $tname = $taxon->field("taxon");
    my %args = ( style => { 'font-style' => "italic" } );
    if ($tname =~ s/^\///) {
	%args = ();
    }
    $text->tspan(%args)->cdata($tname);
    my $specimen = $taxon->field("specimen");
    # I don't know why, but some versions of InkScape (e.g. v0.48 on
    # Ubuntu 12.04.2) do not render an ordinary space in this context
    # -- hence use of a non-breaking space.
    $text->tspan()->cdata(" $specimen") if defined $specimen;

    # Cervicals
    foreach (my $j = 0; $j < $nc; $j++) {
	vertebra($svg, $vcd, $i, $j-$nc, $cw, $ch, substr($cdata, $j, 1));
    }

    # Dorsals
    my $dheight = $dh;
    foreach (my $j = 0; $j < $nd; $j++) {
	vertebra($svg, $vcd, $i, $j, $dw, $dheight, substr($ddata, $j, 1));
	$dheight += $dhg if defined $dhg;
    }
}



( run in 0.628 second using v1.01-cache-2.11-cpan-454fe037f31 )