/* * sample.c */ /* * Copyright (c) 1994-2004 Marcel J.E. Mol, The Netherlands */ # include "mpage.h" /* * Function Declarations */ static void do_sample(); static void urshow(); static void lrshow(); static void ulshow(); static void llshow(); static void box(); int main(argc, argv) int argc; char **argv; { int currarg; /* * examine the environment for PRINTER and MPAGE environment variables */ if ((currarg = do_env()) == 0) { usage(currarg); exit(1); } if ((currarg = do_args(argc, argv, 0)) < 0) { usage(currarg); exit(1); } do_sample(); exit(0); } /* main */ static void do_sample() { printf("%%!PS-mpage-layout\n"); printf("/Courier findfont 8 scalefont setfont\n"); printf("0 setlinewidth\n"); outline_8(stdout); urshow(xbase1(), ybase1()); urshow(xbase1(), ybase2()); urshow(xbase1(), ybase3()); urshow(xbase1(), ybase4()); lrshow(xbase1(), ytop1()); lrshow(xbase1(), ytop2()); lrshow(xbase1(), ytop3()); lrshow(xbase1(), ytop4()); ulshow(xbase1()+xwid2(), ybase1()); ulshow(xbase1()+xwid2(), ybase2()); ulshow(xbase1()+xwid2(), ybase3()); ulshow(xbase1()+xwid2(), ybase4()); llshow(xbase1()+xwid2(), ytop1()); llshow(xbase1()+xwid2(), ytop2()); llshow(xbase1()+xwid2(), ytop3()); llshow(xbase1()+xwid2(), ytop4()); urshow(xbase2(), ybase1()); urshow(xbase2(), ybase2()); urshow(xbase2(), ybase3()); urshow(xbase2(), ybase4()); lrshow(xbase2(), ytop1()); lrshow(xbase2(), ytop2()); lrshow(xbase2(), ytop3()); lrshow(xbase2(), ytop4()); ulshow(xbase2()+xwid2(), ybase1()); ulshow(xbase2()+xwid2(), ybase2()); ulshow(xbase2()+xwid2(), ybase3()); ulshow(xbase2()+xwid2(), ybase4()); llshow(xbase2()+xwid2(), ytop1()); llshow(xbase2()+xwid2(), ytop2()); llshow(xbase2()+xwid2(), ytop3()); llshow(xbase2()+xwid2(), ytop4()); printf("showpage\n"); return; } /* do_sample */ static void urshow(int x, int y) { printf("%%- point %d,%d\n", x, y); box(x, y); printf("\t%d %d moveto (%d,%d) show\n", x+2, y+2, x, y); return; } /* urshow */ static void lrshow(int x, int y) { printf("%%- point %d,%d\n", x, y); box(x, y); printf("\t%d %d moveto (%d,%d) show\n", x+2, y-6, x, y); return; } /* lrshow */ static void ulshow(int x, int y) { printf("%%- point %d,%d\n", x, y); box(x, y); printf("\t%d %d moveto\n", x-2, y+2); printf("\t(%d,%d) dup stringwidth pop -1 mul 0 rmoveto show\n", x, y); return; } /* ulshow */ static void llshow(int x, int y) { printf("%%- point %d,%d\n", x, y); box(x, y); printf("\t%d %d moveto\n", x-2, y-6); printf("\t(%d,%d) dup stringwidth pop -1 mul 0 rmoveto show\n", x, y); return; } /* llshow */ static void box(int x, int y) { printf("\t%d %d moveto %d %d lineto\n", x-1, y, x+1, y); printf("\t%d %d moveto %d %d lineto\n", x, y-1, x, y+1); printf("\tstroke\n"); return; } /* box */