Post Scriptum language

// Example 9

procedure vshow( lineskip, thestring ) 
{
        // The post scriptum loop can iterate 
        // over the characters in string:
        for ( charcode in thestring ) {
                thechar = " ";

                // And the string can be indexed 
                // as ordinary array:
                thechar[ 0 ] = charcode;          

                rmoveto( 0, -lineskip );
                gsave();
                sw = [ stringwidth(thechar) ];
                rmoveto( -sw[0]/2, 0 );
                show( thechar );
                grestore();
        }
}

setfont( scalefont( findfont('Helvetica'), 12 ));
moveto( 72, 576 );
vshow( 16, "TEXT POSITIONED VERTICALLY" );
moveto(122, 576 );
vshow( 16 ,"SHOULD BE CENTERED ON" );
moveto( 172, 576 );
vshow( 16, "A COMMON CENTER LINE." );
moveto( 222, 576 );
vshow( 16, "VERTICAL TEXT IN CAPITAL" );
moveto( 272, 576 );
vshow( 16, "LETTERS HAS MORE EVEN" );
moveto( 322, 576 );
vshow( 16 ,"spacing than lower case letters." );

showpage();