A szelvényre kerülő információt a felhasználók TextBox-okon keresztül, illetve CheckBox-ok megjelölésével adhatják meg. Nyomtatás megkezdésekor ezeket az információkat kell a papírra írnunk a megfelelő pozícióba.
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Graphics g = e.Graphics;
Font f = new Font("Verdana", 8);
Pen p = new Pen(Color.Black, 0.4f);
SolidBrush b = new SolidBrush(Color.Black);
Ezeket a pozíciókat egyszerűen lemérhetjük és így milliméterben rendelkezésünkre állnak azon koordináták, melyekre a szövegeket írni kell. Csakhogy a Graphics osztályban alapértelmezés szerint pixelben adhatók meg az értékek. Bonyolult számítgatások helyett állítsuk át ezt az alapértelmezést és így nem kell milliméterről pixelre konvertálnunk az értékeket. Ehhez a Graphics osztály PageUnit property-je használható.
g.PageUnit = GraphicsUnit.Millimeter;
Fontos még bevezetnünk két változót, melyben megadhatunk egy x, y irányú eltérést. E két számot minden koordinátához hozzáadjuk, mert gyakorlati tapasztalat alapján elmondható, hogy ritka, amikor a postán két egyforma szelvényt kapunk, ha azokat nem egy időben hozzuk el. Néhány milliméteres eltérés is előfordulhat a szelvény szélétől számítva. Ezt viszont e két változó bevezetésével könnyen korrigálhatjuk.
int ox = -3;
int oy = -3;
Ezt követően már nem marad más hátra, mint a megfelelő pozíciókba történő szöveg kiírás, ahol figyelembe vesszük az imént bevezetett két változó értékét is.
g.DrawString(textBox1.Text, f, b, ox+35, oy+27);
g.DrawString(textBox2.Text, f, b, ox+35, oy+31.5f);
...
CheckBox-ok értékeinek megjelenítéséhez két vonalat rajzolunk a megfelelő pozícióba, mely egy X alakú ábrát fog adni.
if (checkBox1.Checked)
{
g.DrawLine(p, ox+33.5f, oy+43f, ox+36.5f, oy+46f);
g.DrawLine(p, ox+36.5f, oy+43f, ox+33.5f, oy+46f);
}