Games::Go::Sgf2Dg::Dg2Ps(3pm)

NAME
Games::Go::Sgf2Dg::Dg2Ps - convert Games::Go::Sgf2Dg::Diagrams to PostScript

SYNOPSIS
use Games::Go::Sgf2Dg::Dg2Ps

 my $dg2ps = B<Games::Go::Sgf2Dg::Dg2Ps-E<gt>new> (options);
 $dg2ps->convertDiagram($diagram);

DESCRIPTION
Games::Go::Sgf2Dg::Dg2Ps converts a Games::Go::Sgf2Dg::Diagram into PostScript.

NEW

my $dg2ps = Games::Go::Sgf2Dg::Dg2Ps->new (?options?)

A new Games::Go::Sgf2Dg::Dg2Ps takes the following options:

boardSizeX => number
boardSizeY => number
    Sets the size of the board.

    Default: 19

doubleDigits => true | false
    Numbers on stones are wrapped back to 1 after they reach 100. Numbers associated with comments and diagram titles are not affected.

    Default: false

coords => true | false
    Generates a coordinate grid.

    Default: false

topLine     => number (Default: 1)
bottomLine  => number (Default: 19)
leftLine    => number (Default: 1)
rightLine   => number (Default: 19)
    The edges of the board that should be displayed. Any portion of the board that extends beyond these numbers is not included in the output.

diaCoords => sub { # convert $x, $y to Diagram coordinates }
    This callback defines a subroutine to convert coordinates from $x, $y to whatever coordinates are used in the Games::Go::Sgf2Dg::Diagram object. The default diaCoords converts 1-based $x, $y to the same coordinates used in SGF format files. You only need to define this if you're using a different coordinate system in the Diagram.

    Default:
        sub { my ($x, $y) = @_;
              $x = chr($x - 1 + ord('a')); # convert 1 to 'a', etc
              $y = chr($y - 1 + ord('a'));
              return("$x$y"); }, # concatenate two letters

    See also the diaCoords method below.

print => sub { my ($dg2tex, @tex) = @_; ... }
    A user defined subroutine to replace the default printing method. This callback is called from the print method (below) with the reference to the Dg2TeX object and a list of lines that are part of the TeX diagram source.

Dg2Ps-specific options:

pageSize => 'page size'
    May be one of:

    . 'A0' - 'A9'
    . 'B0' - 'B10'
    . 'Executive'
    . 'Folio'
    . 'Half-Letter'
    . 'Letter'
    . 'US-Letter'
    . 'Legal'
    . 'US-Legal'
    . 'Tabloid'
    . 'SuperB'
    . 'Ledger'
    . 'Comm #10 Envelope'
    . 'Envelope-Monarch'
    . 'Envelope-DL'
    . 'Envelope-C5'
    . 'EuroPostcard'

    Default: 'Letter'

topMargin    => points
bottomMargin => points
leftMargin   => points
rightMargin  => points
    Margins are set in PostScript 'user space units' which are approximately equivilent to points (1/72 of an inch).

    Default for all margins: 72 * .70 (7/10s of an inch)

text_fontName  => 'font'  Default: 'Times-Roman',
stone_fontName => 'font'  Default: 'Courier-Bold'
    Text and stone fonts names may be one of these (case sensitive):

    Courier
    Courier-Bold
    Courier-BoldOblique
    Courier-Oblique
    Helvetica
    Helvetica-Bold
    Helvetica-BoldOblique
    Helvetica-Oblique
    Times-Roman
    Times-Bold
    Times-Italic
    Times-BoldItalic
text_fontSize  => points
    The point size for the comment text. Diagram titles use this size plus 4, and the game title uses this size plus 6.

    Default: 11

stone_fontSize => points
    The stone_fontSize determines the size of the stones and diagrams. Stone size is chosen to allow up to three digits on a stone . The default stone_fontSize allows for three diagrams (with -coords) per 'letter' page if comments don't take up extra space below diagrams.

    If doubleDigits is specified, the stones and board are slightly smaller (stone 100 may look a bit cramped).

    Default: 5

lineWidth => points
lineHeight => points
    The lineWidth and lineHeight determine the size of the stones and diagrams.

    If lineWidth is not explicitly set, it is calculated from the stone_fontSize to allow up to three digits on a stone . The default stone_fontSize allows for three diagrams (with -coords) per 'letter' page if comments don't take up extra space below diagrams. If doubleDigits is specified, the stones and board are slightly smaller (stone 100 may look a bit cramped).

    If lineHeight is not explicitly set, it will be 1.05 * lineWidth, creating a slightly rectangular diagram.

    Default: undef - determined from stone_fontSize

ps_debug =#<gt> number from 0 to 2
    When non-zero, code and subroutines are added to the PostScript output to help debug the PostScript file. This is very slightly documented in PostScript::File, but you'll probably need to read through the PostScript output to make any use of it.

    Default: 0

METHODS

$dg2ps->configure (option => value, ?...?)
    Change Dg2Ps options from values passed at new time.

my $coord = $dg2mp->diaCoords ($x, $y)
    Provides access to the diaCoords option (see above). Returns coordinates in the converter's coordinate system for board coordinates ($x, $y). For example, to get a specific intersection structure:

        my $int = $diagram->get($dg2mp->diaCoords(3, 4));

$dg2ps->print ($text ? , ... ?)
    prints raw PostScript code to file as defined at new time.

$dg2ps->printComment ($text ? , ... ?)
    Adds $text to the diagram comments.

$dg2ps->comment ($comment ? , ... ?)
    Inserts the PostScript comment character ('%') in front of each line of each comment and prints it to file.

    Note that this is not the same as the printComment method.

my $canvas = $dg2ps->convertDiagram ($diagram)
    Converts a Games::Go::Sgf2Dg::Diagram into PostScript.

my $converted_text = $dg2ps->convertText ($text)
    Converts $text into text for display (handles PostScript escape sequences).

    Returns the converted text.

$dg2ps->close
    prints final PostScript code to the output file and closes the file.

SEE ALSO

sgf2dg(1)
    Script to convert SGF format files to Go diagrams

BUGS
Bugs? In my code?