Scroll to navigation

Prima::PS::PostScript(3) User Contributed Perl Documentation Prima::PS::PostScript(3)

NAME

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

SYNOPSIS

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

DESCRIPTION

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

::resolution
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
- ::alpha is not implemented

Specific properties

::copies
amount of copies that PS interpreter should print
::grayscale
could be 0 or 1
::pageSize
physical page dimension, in points
::pageMargins
non-printable page area, an array of 4 integers: left, bottom, right and top margins in points.
::reversed
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);
    
Helpers for translation from pixel to points and vice versa.
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.
2023-09-05 perl v5.26.1