# phpman > info > HTML::Formatter

HTML::[Formatter(3pm)](https://www.chedong.com/phpMan.php/man/Formatter/3pm/markdown)  User Contributed Perl Documentation HTML::[Formatter(3pm)](https://www.chedong.com/phpMan.php/man/Formatter/3pm/markdown)

NAME
       [HTML::Formatter](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatter/markdown) - Base class for HTML formatters

VERSION
       version 2.12

SYNOPSIS
         use [HTML::FormatSomething](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatSomething/markdown);
         my $infile  = "whatever.html";
         my $outfile = "whatever.file";
         open OUT, ">$outfile"
          or die "Can't write-open $outfile: $!\n";

         print OUT [HTML::FormatSomething](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatSomething/markdown)->format_file(
           $infile,
             'option1' => 'value1',
             'option2' => 'value2',
             ...
         );
         close(OUT);

DESCRIPTION
       [HTML::Formatter](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatter/markdown) 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 "$formatter-"format( $tree )> with an [HTML::TreeBuilder](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATreeBuilder/markdown) (or
       [HTML::Element](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AElement/markdown)) object, they return the appropriately formatted string
       for the input HTML.

       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](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AElement/markdown) object (usually the [HTML::TreeBuilder](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATreeBuilder/markdown) root
       object) as parameter.

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

       This creates a new formatter object with the given options.

   format_file
   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 "SomeClass->new( ... )->format( ... )" on a new
       [HTML::TreeBuilder](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATreeBuilder/markdown) object based on the given HTML file.

   format_string
   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 "SomeClass->new( ... )->format( ... )" on a new
       [HTML::TreeBuilder](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATreeBuilder/markdown) object based on the given source.

   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.

SEE ALSO
       The three specific formatters:-

       [HTML::FormatText](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatText/markdown)
           Format HTML into plain text

       [HTML::FormatPS](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatPS/markdown)
           Format HTML into postscript

       [HTML::FormatRTF](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormatRTF/markdown)
           Format HTML into Rich Text Format

       Also the HTML manipulation libraries used - [HTML::TreeBuilder](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATreeBuilder/markdown),
       [HTML::Element](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AElement/markdown) and [HTML::Tree](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATree/markdown)

INSTALLATION
       See perlmodinstall for information and options on installing Perl
       modules.

BUGS AND LIMITATIONS
       You can make new bug reports, and view existing ones, through the web
       interface at
       <<http://rt.cpan.org/Public/Dist/Display.html?Name=HTML-Format>>.

AVAILABILITY
       The project homepage is <<https://metacpan.org/release/HTML-Format>>.

       The latest version of this module is available from the Comprehensive
       Perl Archive Network (CPAN). Visit <<http://www.perl.com/CPAN/>> to find
       a CPAN site near you, or see
       <<https://metacpan.org/module/[HTML::Format](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AFormat/markdown)/>>.

AUTHORS
       o   Nigel Metheringham <<nigelm@cpan.org>>

       o   Sean M Burke <<sburke@cpan.org>>

       o   Gisle Aas <<gisle@ActiveState.com>>

COPYRIGHT AND LICENSE
       This software is copyright (c) 2015 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.

perl v5.32.0                      2020-12-18              HTML::[Formatter(3pm)](https://www.chedong.com/phpMan.php/man/Formatter/3pm/markdown)
