Provided by: libpostscript-simple-perl_0.07-3_all bug

NAME

       PostScript::Simple::EPS - EPS support for PostScript::Simple

SYNOPSIS

           use PostScript::Simple;

           # create a new PostScript object
           $p = new PostScript::Simple(papersize => "A4",
                                       colour => 1,
                                       units => "in");

           # create a new page
           $p->newpage;

           # add an eps file
           $p->add_eps({xsize => 3}, "test.eps", 1,1);
           $p->add_eps({yscale => 1.1, xscale => 1.8}, "test.eps", 4,8);

           # create an eps object
           $e = new PostScript::Simple::EPS(file => "test.eps");
           $e->rotate(90);
           $e->xscale(0.5);
           $p->add_eps($e, 3, 3); # add eps object to postscript object
           $e->xscale(2);
           $p->add_eps($e, 2, 5); # add eps object to postscript object again

           # write the output to a file
           $p->output("file.ps");

DESCRIPTION

       PostScript::Simple::EPS allows you to add EPS files into PostScript::Simple objects.  Included EPS files
       can be scaled and rotated, and placed anywhere inside a PostScript::Simple page.

       Remember when using translate/scale/rotate that you will normally need to do the operations in the
       reverse order to that which you expect.

PREREQUISITES

       This module requires "PostScript::Simple", "strict", "Carp" and "Exporter".

   EXPORT
       None.

CONSTRUCTOR

       "new(options)"
           Create a new PostScript::Simple::EPS object. The options that can be set are:

           file
               EPS file to be included. This or "source" must exist when the "new" method is called.

           source
               PostScript code for the EPS document. Either this or "file" must be set when "new" is called.

           clip
               Set to 0 to disable clipping to the EPS bounding box. Default is to clip.

           Example:

               $ps = new PostScript::Simple(landscape => 1,
                                            eps => 0,
                                            xsize => 4,
                                            ysize => 3,
                                            units => "in");

               $eps = new PostScript::Simple::EPS(file => "test.eps");

               $eps->scale(0.5);

           Scale the EPS file by x0.5 in both directions.

               $ps->newpage();
               $ps->importeps($eps, 1, 1);

           Add the EPS file to the PostScript document at coords (1,1).

               $ps->importepsfile("another.eps", 1, 2, 4, 4);

           Easily add an EPS file to the PostScript document using bounding box (1,2),(4,4).

           The   methods   "importeps"   and   "importepsfile"   are   described   in   the   documentation   of
           "PostScript::Simple".

OBJECT METHODS

       All object methods return 1 for success or 0 in  some  error  condition  (e.g.  insufficient  arguments).
       Error message text is also drawn on the page.

       "get_bbox"
           Returns  the  EPS  bounding  box,  as  specified on the %%BoundingBox line of the EPS file. Units are
           standard PostScript points.

           Example:

               ($x1, $y1, $x2, $y2) = $eps->get_bbox();

       "width"
           Returns the EPS width.

           Example:

             print "EPS width is " . abs($eps->width()) . "\n";

       "height"
           Returns the EPS height.

           Example:

           To scale $eps to 72 points high, do:

             $eps->scale(1, 72/$eps->height());

       "scale(x, y)"
           Scales the EPS file. To scale in one direction only, specify 1 as the other scale. To scale  the  EPS
           file the same in both directions, you may use the shortcut of just specifying the one value.

           Example:

               $eps->scale(1.2, 0.8); # make wider and shorter
               $eps->scale(0.5);      # shrink to half size

       "rotate(deg)"
           Rotates  the  EPS file by "deg" degrees anti-clockwise. The EPS file is rotated about it's own origin
           (as defined by it's bounding box). To rotate by a particular co-ordinate (again, relative to the  EPS
           file, not the main PostScript document), use translate, too.

           Example:

               $eps->rotate(180);        # turn upside-down

           To rotate 30 degrees about point (50,50):

               $eps->translate(50, 50);
               $eps->rotate(30);
               $eps->translate(-50, -50);

       "translate(x, y)"
           Move the EPS file by "x","y" PostScript points.

           Example:

               $eps->translate(10, 10);      # move 10 points in both directions

       "reset"
           Clear all translate, rotate and scale operations.

           Example:

               $eps->reset();

       "load"
           Reads  the EPS file into memory, to save reading it from file each time if inserted many times into a
           document. Can not be used with "preload".

       "preload(object)"
           Experimental: defines the EPS at in the document prolog, and just runs a command to  insert  it  each
           time  it is used. "object" is a PostScript::Simple object. If the EPS file is included more than once
           in the PostScript file then this will probably shrink the filesize quite a lot.

           Can not be used at the same time as "load", or when using EPS objects defined from PostScript source.

           Example:

               $p = new PostScript::Simple();
               $e = new PostScript::Simple::EPS(file => "test.eps");
               $e->preload($p);

BUGS

       This is software in development; some current functionality may not be as expected, and/or may  not  work
       correctly.

AUTHOR

       The  PostScript::Simple::EPS  module  was  written by Matthew Newton, after prods for such a feature from
       several people around the world. A useful importeps function  that  provides  scaling  and  aspect  ratio
       operations was gratefully received from Glen Harris, and merged into this module.

       Copyright (C) 2002-2003 Matthew C. Newton / Newton Computing

       This  program  is  free  software;  you  can  redistribute it and/or modify it under the terms of the GNU
       General Public License as published by the Free Software Foundation, version 2.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY  WARRANTY;  without  even
       the  implied  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
       License for more details, available at http://www.gnu.org/licenses/gpl.html.

SEE ALSO

       PostScript::Simple

perl v5.14.2                                       2005-03-03                       PostScript::Simple::EPS(3pm)