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
|
package PDF::FromHTML::Template::Element::PageBreak;
use strict;
BEGIN {
use vars qw(@ISA);
@ISA = qw(PDF::FromHTML::Template::Element);
use PDF::FromHTML::Template::Element;
}
sub new
{
my $class = shift;
my $self = $class->SUPER::new(@_);
$self->trip(0);
return $self;
}
sub reset
{
my $self = shift;
$self->trip(0);
return $self->SUPER::reset;
}
sub trip { $_[0]{__TRIP_WIRE__} = $_[1] if defined $_[1]; $_[0]{__TRIP_WIRE__} }
sub render
{
my $self = shift;
my ($context) = @_;
return 0 unless $self->should_render($context);
return 1 if $self->trip;
# Regardless of whether a pagebreak actually occurs, this node
# has done its job.
$self->trip(1);
if ($context->get($self, 'Y') != $context->get($self, 'START_Y'))
{
$context->trip_pagebreak;
}
return 0;
}
1;
__END__
=head1 NAME
PDF::FromHTML::Template::Element::PageBreak - To insert a hard pagebreak
=head1 NODE NAME
PAGEBREAK
=head1 INHERITANCE
PDF::FromHTML::Template::Element
=head1 ATTRIBUTES
None
=head1 CHILDREN
None
=head1 AFFECTS
Nothing
=head1 DEPENDENCIES
None
=head1 USAGE
<pagebreak/>
This will cause a pagebreak to occur at the spot the node is.
=head1 AUTHOR
Rob Kinyon (rkinyon@columbus.rr.com)
=head1 SEE ALSO
=cut
|