Prima::PS::PostScript - PostScript interface to Prima::Drawable


        use Prima;
        use Prima::PS::PostScript;

        my $x = Prima::PS::PostScript-> create( onSpool => sub {
                open F, ">> ./";
                print F $_[1];
                close F;
        die "error:$@" unless $x-> begin_doc;
        $x-> font-> size( 30);
        $x-> text_out( "hello!", 100, 100);
        $x-> end_doc;


Realizes the Prima library interface to PostScript level 2 document language. The module is designed to be compliant with Prima::Drawable interface. All properties' behavior is as same as Prima::Drawable's, except those described below.

Inherited properties


Can be set while object is in normal stage - cannot be changed if document is opened. Applies to fillPattern realization and general pixel-to-point and vice versa calculations


- ::alpha is not implemented

Specific properties


amount of copies that PS interpreter should print


could be 0 or 1


physical page dimension, in points


non-printable page area, an array of 4 integers: left, bottom, right and top margins in points.


if 1, a 90 degrees rotated document layout is assumed

Internal methods


Can be called for direct PostScript code injection. Example:

        $x-> emit('0.314159 setgray');
        $x-> bar( 10, 10, 20, 20);
pixel2point and point2pixel

Helpers for translation from pixel to points and vice versa.

fill & stroke

Wrappers for PS outline that is expected to be filled or stroked. Apply colors, line and fill styles if necessary.


Prima::PS::PostScript is not responsible for output of generated document, it just calls ::spool when document is closed through ::end_doc. By default just skips data. Prima::PS::Printer handles spooling logic.


Returns Prima::Application::fonts, however with iso10646-1 encoding only. That effectively allows only unicode output.