Is there a package to create Optical Mark Reader answer-sheets (aka bubble sheet)?

EDIT 1: No choice. I think I must use PSTricks and \multido to make it.

-
Perhaps some more detail on the requirements for such a package? –  Joseph Wright Dec 4 '10 at 19:02

%%\listfiles
\documentclass[10pt]{article}
\usepackage{array}
\pagestyle{empty}
\parindent=0pt
\baselineskip=6.35mm
\parskip=0pt
\makeatletter
\newcommand*{\InitToks}{\toks@={}}
\newcommand*{\PrintToks}{\the\toks@}
\unitlength=1mm
\def\BOX{\framebox(3.55,2){}}
\newcount\rowNo
\newcommand*{\dynTable}[1]{%
\begingroup
\InitToks
\rowNo=0 %
\loop\ifnum\rowNo<#1\relax
\the\rowNo &
\BOX & \BOX & \BOX & \BOX & \BOX & \BOX & \BOX & \BOX & \BOX & \BOX%
\tabularnewline}%
\repeat
\PrintToks
\endgroup}
\makeatother

\def\strobe{\rule{0pt}{4mm}\rule{3mm}{2.54mm}}

\begin{document}
\sffamily\small

PREFERENCE\par
\bigskip

\dynTable{28}

\end{document}

-
thanks for answering. What is the command to create an ovalbox instead of a framebox? –  xport Jan 3 '11 at 13:19
@xport-is-sleeping: use \usepackage{pict2e} to allow all radii and then \def\BOX{\leavevmode\put(0,0.6){\oval(3.55,2)}} –  Herbert Jan 3 '11 at 13:29

Given good specifications how the sheet should look like (positions, sizes, extra markings, etc.) it shouldn't be too hard to create an answer sheet with TikZ.

As I lack these specification, I can only show you a simple proof of concept:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[font=\small]
\foreach \line in {1,2,...,4} {
\begin{scope}[yshift=-\line cm]
\foreach \count/\desc in {1/A, 2/B, 3/C, 4/D, 5/E} {
\node at ({\count * 0.5}, 0.4) {\desc};
\node at (0,0) {\normalsize\textbf{\line}};
\node[draw,circle,inner sep=1pt] at ({\count * 0.5},0) {\count};
}
\end{scope}
}
\end{tikzpicture}
\end{document}

-
Oh tikz, is there anything you -can't- do? –  flip Dec 5 '10 at 23:24
–  Caramdir Dec 6 '10 at 0:00
Touché! –  flip Dec 6 '10 at 0:24
thank for answering. Tikz is great, but I only know beloved PSTricks. :-) –  xport Dec 6 '10 at 3:24