%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%   TeX program for typeseting radioamateur QSL cards
%
%                  Vojtech Bubnik, OK1IAK
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%% Fill there your datas
\def\qsl{%
  \qslcard WAZ 28 ITU 15 LOC JN79BH OKR CPI 
           NAME {Vojtěch Bubník} STREET {Raisova 1306} 
           TOWN {397 01 Písek} NATION {CZECH REPUBLIC}
           CALL {OK1IAK} BOX {Box 69, 113 27 PRAHA 1}
}

%%%%%%%%%%%%%%%%%%%% Definition of page size
% i am from Europe, i use A4 format
\hoffset=-.5in
\voffset=-1.3in
\hsize=18cm
\vsize=28cm

\nopagenumbers

\input pstricks

%%%%%%%%%%%%%%%%%%%% Setting fonts
% attention, addressfont here is czech-computer-modern, 
% you should use 
\font\bigfont=csb10 scaled\magstep2
\font\callfont=cmb8 scaled 8000
\font\addressfont=csr10 scaled\magstep1

%%%%%%%%%%%%%%%%%%%% Usefull macros
\def\norminterlineskip{\baselineskip=12pt\lineskip=1pt\lineskiplimit=0pt}

\def\c #1 {\noindent\hbox to\hsize{\hss#1\hss}\par}

\def\kr #1 #2 {%
  \setbox0=\hbox to#1{\hss #2\hss\kern.4pt}%
  \dp0=12mm
  \dimen0=\wd0 \advance\dimen0 -0.4pt \wd0=\dimen0
  \dimen0=\ht0 \advance\dimen0 .3em \ht0=\dimen0
  \box0 \vrule
}

%%%%%%%%%%%%%%%%%%%% Draws the qsl card
\def\qslinter {%
\norminterlineskip
\hbox to 128mm{\vbox to 78mm{%
\hsize=128mm
\setbox0=\vbox{%
\noindent\hbox to\hsize{WAZ \WAZ\hss ITU \ITU}\par
\noindent\hbox to\hsize{LOC \LOC\hss OKR \OKR}\par
}%
\setbox1=\hbox{\bigfont X}%
\setbox2=\hbox{X}%
\dimen0=\ht2 \advance\dimen0-\ht1
\wd0=0pt \dp0=\dp1 \ht0=\ht1
\hbox to\hsize{\box0 \hss \bigfont \NATION\hss}\par
\vskip.4em
{\addressfont \c {\NAME} \c {\STREET} \c {\TOWN} }

\vss
\c {\callfont \CALL}
\vss
\vskip 1.5em
\c {CFM QSO WITH ......................................}
\vss

\noindent \hrule
\noindent
\kern-0.4pt\vrule
       \kr 36mm DATE
       \kr 20mm UTC
       \kr 29mm MHz
       \kr 15mm 2-WAY
       \kr 28mm RST
\noindent \hrule
\vss
\hbox to\hsize{
  \vbox{
     \noindent
     \hbox to\hsize{PSE TNX QSL VIA BUREAU\hss}
     \hbox to\hsize{\BOX{} or direct\hss}
  }
  {\bigfont\hss 73} .........................
}}}}

%%%%%%%%%%%%%%%%%%%% Draws cut-crosshairs with the qslcard
\def\qslcard WAZ #1 ITU #2 LOC #3 OKR #4 
         NAME #5 STREET #6 TOWN #7 NATION #8 CALL #9 {%
  \def\WAZ{#1}\def\ITU{#2}\def\LOC{#3}\def\OKR{#4}\def\NAME{#5}%
  \def\STREET{#6}\def\TOWN{#7}\def\NATION{#8}\def\CALL{#9}%
  \readnextqslparams
}
\def\readnextqslparams BOX #1 {%
  \def\BOX{#1}\qslcarduseparams
}
\def\qslcarduseparams{%
  \hbox to14cm{%
    \hsize=14cm
    \vbox to9cm{%
      \hrule width 0.1pt height 0.5cm \vss \hrule width 0.1pt height 0.5cm
    }%
    \kern-0.1pt
    \vbox to9cm{%
      \noindent
      \hbox to14cm{\vrule width0.5cm height3.4pt depth-3.3pt \hss 
                   \vrule width0.5cm height3.4pt depth-3.3pt}\par
      \vss
      \noindent
      \hbox to14cm{%
        \hss 
        \qslinter
        \hss
      }\par
      \vss
      \noindent
      \hbox to14cm{\vrule width0.5cm height.4pt\hss 
                   \vrule width0.5cm height.4pt}\par
    }%
    \kern-0.1pt
    \vbox to9cm{%
      \hrule width 0.1pt height 0.5cm \vss \hrule width 0.1pt height 0.5cm
    }%
  }%
}%

%%%%%%%%%%%%%%%%%%%% Draws a page of qslcards
\offinterlineskip
\noindent\rotateleft{\hbox{\vbox{\qsl\qsl}\vbox{\qsl\qsl}}}

\end