/usr/share/perl5/Template/Plugin/GD/Text/Wrap.pm is in libtemplate-plugin-gd-perl 2.66-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | package Template::Plugin::GD::Text::Wrap;
use strict;
use warnings;
use base qw( GD::Text::Wrap Template::Plugin );
our $VERSION = sprintf("%d.%02d", q$Revision: 1.56 $ =~ /(\d+)\.(\d+)/);
sub new {
my $class = shift;
my $context = shift;
my $gd = shift;
push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" );
return $class->SUPER::new($gd, @_);
}
sub set {
my $self = shift;
push(@_, %{pop(@_)}) if ( @_ & 1 && ref($_[@_-1]) eq "HASH" );
$self->SUPER::set(@_);
}
1;
__END__
=head1 NAME
Template::Plugin::GD::Text::Wrap - Break and wrap strings in GD images
=head1 SYNOPSIS
[% USE align = GD.Text.Wrap(gd_image); %]
=head1 EXAMPLES
[% FILTER null;
USE gd = GD.Image(200,400);
USE gdc = GD.Constants;
black = gd.colorAllocate(0, 0, 0);
green = gd.colorAllocate(0, 255, 0);
txt = "This is some long text. " | repeat(10);
USE wrapbox = GD.Text.Wrap(gd,
line_space => 4,
color => green,
text => txt,
);
wrapbox.set_font(gdc.gdMediumBoldFont);
wrapbox.set(align => 'center', width => 160);
wrapbox.draw(20, 20);
gd.png | stdout(1);
END;
-%]
[% txt = BLOCK -%]
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
[% END -%]
[% FILTER null;
#
# This example follows the example in GD::Text::Wrap, except
# we create a second image that is a copy just enough of the
# first image to hold the final text, plus a border.
#
USE gd = GD.Image(400,400);
USE gdc = GD.Constants;
green = gd.colorAllocate(0, 255, 0);
blue = gd.colorAllocate(0, 0, 255);
USE wrapbox = GD.Text.Wrap(gd,
line_space => 4,
color => green,
text => txt,
);
wrapbox.set_font(gdc.gdMediumBoldFont);
wrapbox.set(align => 'center', width => 140);
rect = wrapbox.get_bounds(5, 5);
x0 = rect.0;
y0 = rect.1;
x1 = rect.2 + 9;
y1 = rect.3 + 9;
gd.filledRectangle(0, 0, x1, y1, blue);
gd.rectangle(0, 0, x1, y1, green);
wrapbox.draw(x0, y0);
nx = x1 + 1;
ny = y1 + 1;
USE gd2 = GD.Image(nx, ny);
gd2.copy(gd, 0, 0, 0, 0, x1, y1);
gd2.png | stdout(1);
END;
-%]
=head1 DESCRIPTION
The GD.Text.Wrap plugin provides an interface to the GD::Text::Wrap
module. It allows multiples line of text to be drawn in GD images with
various wrapping and alignment.
See L<GD::Text::Wrap> for more details. See
L<Template::Plugin::GD::Text::Align> for a plugin that allow you to
draw text with various alignment and orientation.
=head1 AUTHOR
Thomas Boutell wrote the GD graphics library.
Lincoln D. Stein wrote the Perl GD modules that interface to it
and Martien Verbruggen wrote the GD::Text module.
Craig Barratt E<lt>craig@arraycomm.comE<gt> wrote the original GD
plugins for the Template Toolkit (2001).
Andy Wardley E<lt>abw@cpan.orgE<gt> extracted them from the TT core
into a separate distribution for TT version 2.15.
These modules are looking for a new maintainer. Please contact
Andy Wardley if you are willing to help out.
=head1 COPYRIGHT
Copyright (C) 2001 Craig Barratt E<lt>craig@arraycomm.comE<gt>,
2006 Andy Wardley E<lt>abw@cpan.orgE<gt>.
GD::Text is copyright 1999 Martien Verbruggen.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=head1 SEE ALSO
L<Template::Plugin::GD>, L<Template::Plugin::GD::Text>, L<GD|GD>
=cut
# Local Variables:
# mode: perl
# perl-indent-level: 4
# indent-tabs-mode: nil
# End:
#
# vim: expandtab shiftwidth=4:
|