=for test_synopsis 1;
__END__

=for stopwords formatters

=head1 NAME

HTML::Formatter - Base class for HTML formatters

=head1 VERSION

version 2.05

=head1 SYNOPSIS

  use HTML::FormatSomething;
  my $infile  = "whatever.html";
  my $outfile = "whatever.file";
  open OUT, ">$outfile"
   or die "Can't write-open $outfile: $!\n";

  print OUT HTML::FormatSomething->format_file(
    $infile,
      'option1' => 'value1',
      'option2' => 'value2',
      ...
  );
  close(OUT);

=head1 DESCRIPTION

HTML::Formatter is a base class for classes that take HTML
and format it to some output format.  When you take an object
of such a base class and call C<< $formatter->format( $tree ) >>
with an HTML::TreeBuilder (or HTML::Element) object, they return
the

HTML formatters are able to format a HTML syntax tree into various
printable formats.  Different formatters produce output for different
output media.  Common for all formatters are that they will return the
formatted output when the format() method is called.  The format()
method takes a HTML::Element object (usually the HTML::TreeBuilder
root object) as parameter.

=head1 METHODS

=head2 new

    my $formatter = FormatterClass->new(
        option1 => value1, option2 => value2, ...
    );

This creates a new formatter object with the given options.

=head2 format_file

=head2 format_from_file

    $string = FormatterClass->format_file(
        $html_source,
        option1 => value1, option2 => value2, ...
        );

Return a string consisting of the result of using the given class
to format the given HTML file according to the given (optional) options.
Internally it calls C<< SomeClass->new( ... )->format( ... ) >> on a new
HTML::TreeBuilder object based on the given HTML file.

=head2 format_string

=head2 format_from_string

    $string = FormatterClass->format_string(
        $html_source,
        option1 => value1, option2 => value2, ...
        );

Return a string consisting of the result of using the given class
to format the given HTML source according to the given (optional)
options. Internally it calls C<< SomeClass->new( ... )->format( ... ) >>
on a new HTML::TreeBuilder object based on the given source.

=head2 format

    my $render_string = $formatter->format( $html_tree_object );

This renders the given HTML object according to the options set for
$formatter.

After you've used a particular formatter object to format a particular
HTML tree object, you probably should not use either again.

=head1 SEE ALSO

The three specific formatters:-

=over

=item L<HTML::FormatText>

Format HTML into plain text

=item L<HTML::FormatPS>

Format HTML into postscript

=item L<HTML::FormatRTF>

Format HTML into Rich Text Format

=back

Also the HTML manipulation libraries used - L<HTML::TreeBuilder>,
L<HTML::Element> and L<HTML::Tree>

=head1 INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

=head1 BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests through the web interface at
L<http://rt.cpan.org/Public/Dist/Display.html?Name=HTML-Format>.

=head1 AVAILABILITY

The project homepage is L<http://search.cpan.org/dist/HTML-Format>.

The latest version of this module is available from the Comprehensive Perl
Archive Network (CPAN). Visit L<http://www.perl.com/CPAN/> to find a CPAN
site near you, or see L<http://search.cpan.org/dist/HTML-Format/>.

The development version lives at L<http://github.com/nigelm/HTML-Format>
and may be cloned from L<git://github.com/nigelm/HTML-Format.git>.
Instead of sending patches, please fork this project using the standard
git and github infrastructure.

=head1 AUTHORS

=over 4

=item *

Nigel Metheringham <nigelm@cpan.org>

=item *

Sean M Burke <sburke@cpan.org>

=item *

Gisle Aas <gisle@ActiveState.com>

=back

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Nigel Metheringham, 2002-2005 Sean M Burke, 1999-2002 Gisle Aas.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

