Andy Wardley

NAME

Template::Plugin::GD::Text::Wrap - Break and wrap strings in GD images

SYNOPSIS

    [% USE align = GD.Text.Wrap(gd_image); %]

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;
    -%]

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 GD::Text::Wrap for more details. See Template::Plugin::GD::Text::Align for a plugin that allow you to draw text with various alignment and orientation.

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 <craig@arraycomm.com> wrote the original GD plugins for the Template Toolkit (2001).

Andy Wardley <abw@cpan.org> 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.

COPYRIGHT

Copyright (C) 2001 Craig Barratt <craig@arraycomm.com>, 2006 Andy Wardley <abw@cpan.org>.

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.

SEE ALSO

Template::Plugin::GD, Template::Plugin::GD::Text, GD