CAM-PDF
view release on metacpan or search on metacpan
lib/CAM/PDF/GS.pm view on Meta::CPAN
sub textToDevice
{
my $self = shift;
my $x = shift;
my $y = shift;
return $self->userToDevice($self->textToUser($x, $y));
}
=item $self->textLineToUser($x, $y)
Convert text coordinates (C<Tlm>) to user coordinates. Returns
the converted X and Y.
=cut
sub textLineToUser
{
my $self = shift;
my $x = shift;
my $y = shift;
return $self->dot($self->{Tlm}, $x, $y);
}
=item $self->textLineToDevice($x, $y)
Convert text coordinates (C<Tlm>) to device coordinates.
Returns the converted X and Y.
=cut
sub textLineToDevice
{
my $self = shift;
my $x = shift;
my $y = shift;
return $self->userToDevice($self->textLineToUser($x, $y));
}
=item $self->renderText($string, $width)
A general method for rendering strings, from C<Tj> or C<TJ>. This is a
no-op, but subclasses may override.
=cut
sub renderText
{
my $self = shift;
my $string = shift;
my $width = shift;
# noop, override in subclasses
return;
}
=item $self->Tadvance($width)
Move the text cursor.
=cut
sub Tadvance
{
my $self = shift;
my $width = shift;
my $tx = 0;
my $ty = 0;
if ($self->{wm} == 0)
{
$tx = ($width * $self->{Tfs} + $self->{Tc} + $self->{Tw}) * $self->{Tz};
}
else
{
$ty = $width * $self->{Tfs} + $self->{Tc} + $self->{Tw};
}
$self->{moved}->[0] += $tx;
$self->{moved}->[1] += $ty;
$self->applyMatrix([1,0,0,1,$tx,$ty], $self->{Tm});
return;
}
=back
=head1 DATA FUNCTIONS
=over
=item $self->BT()
=cut
sub BT
{
my $self = shift;
@{$self->{Tm}} = (1, 0, 0, 1, 0, 0);
@{$self->{Tlm}} = (1, 0, 0, 1, 0, 0);
return;
}
=item $self->Tf($fontname, $fontsize)
=cut
sub Tf
{
my $self = shift;
my $fontname = shift;
my $fontsize = shift;
$self->{Tf} = $fontname;
$self->{Tfs} = $fontsize;
$self->{refs}->{fm} = $self->{refs}->{doc}->getFontMetrics($self->{refs}->{properties}, $fontname);
# TODO: support vertical text mode (wm = 1)
$self->{wm} = 0;
( run in 1.759 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )