Модуль HTML: :Formatter — это базовый класс целого семейства средств форматирования HTML. В настоящее время реализовано только два члена этого семейства. Модуль HTML::FormatText принимает документ HTML, например с текстом приглашения на курсы ит , и вырабатывает удобно отформатированный простой текст, а модуль HTML::FormatPS создает выходную информацию PostScript. Ни один подкласс класса HTML::Formatter не обрабатывает встроенные изображения, формы или таблицы. В некоторых случаях это ограничение может оказаться очень существенным.
Форматирование файла HTML выполняется в два этапа. На первом этапе код HTML представляется в виде дерева синтаксического анализа с использованием специализированного подкласса класса HTML::Parser с именем HTML::TreeBuilder. На втором этапе это дерево синтаксического анализа передается в требуемый подкласс класса HTML::Formatter для вывода отформатированного текста.
Далее приведет сценарий format_html.pl, в котором эти модули применяются для чтения файла HTML, указанного в командной строке или полученного из стандартного устройства ввода, и его форматирования. Если задана опция Post script, сценарий выводит текст в формате PostScript, пригодный для печати, в ином случае он выводит простой текст.
! /usr/local/bin/perl -w Файл: format_html.pl use strict; use Getopt::Long; use HTML::TreeBuilder; my $PS; GetOptions('postscript' => $PS) or die "Usage: format_html.pl [postscript] [file]n"; my $formatter; if ($PS) { require HTML::FormatPS; $ formatter = HTML::FormatPS->new (PaperSize=>' Letter') ; ) else { require HTML::FormatText; $formatter = HTML::FormatText->new; my $HTML::TreeBuilder->new; $tree->parse($_) while <>; $tree->eof; print $formatter->format($tree); $tree->delete;