mm-grid in PostScript, a better one

Posted on

A better mm-grid in PostScript — it’s more convenient to set grid margins from paper’s edge.

Well, and this algorithm i like more :-)

It seems, ps2pdf liked it more too — it created 5,7K size pdf (instead of those 54K for prev. code).

%!PS-Adobe-2.0
%%DocumentPaperSizes: a4
%%EndComments
 
% For A4! In PostScript points!
/paperw { 595 } def
/paperh { 842 } def
 
% 1 mm contains so much PostScript points:
/mm { 72 mul 25.4 div } def   % 2.8346457 points/mm
 
%
% Here You can specify Left, Right, Top and Bottom margins,
% and thicknesses for grid lines.
%
 
% left, right, top, bottom:
/LM { 10 mm } def
/RM { 10 mm } def
/TM { 10 mm } def
/BM { 10 mm } def
 
% Grid setup:
/unit { 1 mm } def       % 1mm grid
/thickstep     10 def    % thick lines every 10 mm
/semithickstep  5 def    % semi-thick lines every 5 mm
 
% For inch-grid:
% /unit { 72 16 div } def  % 1/16inch grid
% /thickstep     16 def    % thick lines every inch
% /semithickstep  8 def    % semi thick lines every 1/2 inch
 
% thicknesses for lines:
/thinthickness      0.1 def
/thickthickness     0.9 def
/semithickthickness 0.4 def
 
%
% Those staff below i did not manage to understand ;O)
%
 
/units { unit mul } def
 
/increase-n {
  n 1 add
  /n exch def
} def
 
/setwidth {
  /n exch def
  n thickstep mod 0 eq
    { thickthickness }
    { n semithickstep mod 0 eq
      { semithickthickness }
      { thinthickness }
    ifelse
  } ifelse
    setlinewidth
} def
 
/vline {
  setwidth
  0 paperh TM sub BM sub rlineto
  stroke
} def
 
/hline {
  setwidth
  paperw LM sub RM sub 0 rlineto
  stroke
} def
 
/n 0 def
 
LM BM moveto
 
{ currentpoint pop paperw LM sub le
  {
    n vline
    increase-n
    LM n units add BM moveto
  }
  { exit } ifelse
} loop
 
/n 0 def
 
LM BM moveto
 
{ currentpoint paperh TM sub le
  {
    pop     % throw away X part of currentpoint (to keep stack clear)
    n hline
    increase-n
    LM BM n units add moveto
  }
  { exit } ifelse
} loop
 
 
showpage
 
% i liked that!
%
% vim: set ts=2 expandtab:

2 Replies to “mm-grid in PostScript, a better one”

  1. Горизонт завалено розфарбовувальник слово for і числа в коментарях виділив :-) Трохи він не розбирається.

    Колись я схожим чином робив тестові зображення для калібрування оптики багатокамерних рентґенівських приймачів. PostScript — цяця-ляля, це було швидше і точніше, ніж в корелі і на фотовивід однак ps треба було нести.

    1. Розфарбовувальник — якийсь модуль до WP, “знає купу мов”, але купи і не знає :О)

      Я сказав, щоб він фарбував під PHP .)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.