NAME

PDF::Imposition::Schema - Role for the imposition schemas.

SYNOPSIS

This class provides the shared method for real imposition schemas and can't me called directly.

Consuming classes must provide a _do_impose method.

  use PDF::Imposition;
  my $imposer = PDF::Imposition->new(file => "test.pdf",
                                     # either use 
                                     outfile => "out.pdf",
                                     # or suffix
                                     suffix => "-2up"
                                    );
  $imposer->impose;
or 

  use PDF::Imposition;
  my $imposer = PDF::Imposition->new();
  $imposer->file("test.pdf");
  
  $imposer->outfile("out.pdf");
  # or
  $imposer->suffix("-imp");

  $imposer->impose;

METHODS

Read/write accessors

All the following accessors accept an argument, which sets the value.

file

Unsurprisingly, the input file, which must exist.

outfile

The destination file of the imposition. You may prefer to use the suffix method below, which takes care of the filename.

suffix

The suffix of the file. By default, '-imp', so test.pdf imposed will be saved as 'test-imp.pdf'. If test-imp.pdf already exists, it will be replaced merciless.

signature($num_or_range)

The signature, must be a multiple of the pages_per_sheet option (usually 4 or 8), or a range, like the string "20-100". If a range is selected, the signature is determined heuristically to minimize the white pages left on the last signature. The wider the range, the better the results.

pages_per_sheet

The number of logical pages which fit on a sheet, recto-verso. Default to 1. Subclasses usually change this and ignore your option unless otherwise specified.

title

The title to set in the PDF meta information. Defaults to the basename.

Internal methods accessors

The following methods are used internally but documented for schema's authors.

dimensions

Returns an hashref with the original pdf dimensions in points.

{ w => 800, h => 600 }

orig_width

orig_height

total_pages

Returns the number of pages

in_pdf_obj

Internal usage. It's the PDF::API2 object used as source.

out_pdf_obj

Internal usage. The PDF::API2 object used as output.

get_imported_page($pagenumber)

Retrieve the page form object from the input pdf to the output pdf, and return it. The method return undef if the page is out of range.

impose

Do the job and leave the output in $self->outfile, cleaning up the internal objects.

output_filename

If outfile is not provided, use the suffix provided and return the filename.

computed_signature

Return the actual number of signature, resolving 0 to the nearer signature.

total_output_pages

Return the computed number of pages of the output, taking in account the signature handling.

DEMOLISH

Object cleanup.

cropmarks_options

By default, cropmarks are centered and twoside is true.

SEE ALSO

PDF::Imposition