| PDF-API3 documentation | Contained in the PDF-API3 distribution. |
PDF::API3::Compat::API2::Basic::PDF::Page - Represents a PDF page, inherits from PDF::API3::Compat::API2::Basic::PDF::Pages
Represents a page of output in PDF. It also keeps track of the content stream, any resources (such as fonts) being switched, etc.
Page inherits from Pages due to a number of shared methods. They are really structurally quite different.
A page has various working variables:
The currently open stream
Creates a new page based on a pages object (perhaps the root object).
The page is also added to the parent at this point, so pages are ordered in a PDF document in the order in which they are created rather than in the order they are closed.
Only the essential elements in the page dictionary are created here, all others are either optional or can be inherited.
The optional index value indicates the index in the parent list that this page should be inserted (so that new pages need not be appended)
Adds the string to the currently active stream for this page. If no stream exists, then one is created and added to the list of streams for this page.
The slightly cryptic name is an aim to keep it short given the number of times people are likely to have to type it.
Ships the page out to the given output file context
| PDF-API3 documentation | Contained in the PDF-API3 distribution. |
#======================================================================= # ____ ____ _____ _ ____ ___ ____ # | _ \| _ \| ___| _ _ / \ | _ \_ _| |___ \ # | |_) | | | | |_ (_) (_) / _ \ | |_) | | __) | # | __/| |_| | _| _ _ / ___ \| __/| | / __/ # |_| |____/|_| (_) (_) /_/ \_\_| |___| |_____| # # A Perl Module Chain to faciliate the Creation and Modification # of High-Quality "Portable Document Format (PDF)" Files. # #======================================================================= # # THIS IS A REUSED PERL MODULE, FOR PROPER LICENCING TERMS SEE BELOW: # # # Copyright Martin Hosken <Martin_Hosken@sil.org> # # No warranty or expression of effectiveness, least of all regarding # anyone's safety, is implied in this software or documentation. # # This specific module is licensed under the Perl Artistic License. # # # $Id: Page.pm,v 2.0 2005/11/16 02:16:00 areibens Exp $ # #======================================================================= package PDF::API3::Compat::API2::Basic::PDF::Page; use strict; use vars qw(@ISA); @ISA = qw(PDF::API3::Compat::API2::Basic::PDF::Pages); no warnings qw[ deprecated recursion uninitialized ]; use PDF::API3::Compat::API2::Basic::PDF::Pages; use PDF::API3::Compat::API2::Basic::PDF::Utils;
sub new { my ($class, $pdf, $parent, $index) = @_; my ($self) = {}; $class = ref $class if ref $class; $self = $class->SUPER::new($pdf, $parent); $self->{'Type'} = PDFName('Page'); delete $self->{'Count'}; delete $self->{'Kids'}; $parent->add_page($self, $index); $self; }
sub add { my ($self, $str) = @_; my ($strm) = $self->{' curstrm'}; if (!defined $strm) { $strm = PDF::API3::Compat::API2::Basic::PDF::Dict->new; foreach (@{$self->{' outto'}}) { $_->new_obj($strm); } $self->{'Contents'} = PDFArray() unless defined $self->{'Contents'}; unless (ref $self->{'Contents'} eq "PDF::API3::Compat::API2::Basic::PDF::Array") { $self->{'Contents'} = PDFArray($self->{'Contents'}); } $self->{'Contents'}->add_elements($strm); $self->{' curstrm'} = $strm; } $strm->{' stream'} .= $str; $self; }
sub ship_out { my ($self, $pdf) = @_; $pdf->ship_out($self); if (defined $self->{'Contents'}) { $pdf->ship_out($self->{'Contents'}->elementsof); } $self; }