Printer does nohting

  • Thread starter Thread starter MigrationUser 1
  • Start date Start date
M

MigrationUser 1

Guest
hallo zusammen

Ich habe ein kleines Programm entwickelt, welches Datensätze aus einer DB in einer LIstbox (LstAnzeige) anzeigt, was problemlos funktioniert. Nun habe ich noch ne Druckfunktion eingebaut und wenn ich auf den Button "Drucken" klicke dann erscheint zwar das Drucken Fenster wo ich den Drucker auswählen kann und dann den Job abschicke und kurz kommt ne Meldung "Printing... "doch der Drucker macht keinen Wank. Wenn ich das Ganze als PDF "ausdrucke" dann sind die Files leer.

Was mache ich falsch?


Danke für Eure Hilfe

public Form1()
{
InitializeComponent();

}
private StringReader myReader;

private void Form1_Load(object sender, EventArgs e)
{

for (int i = 0; i < 10; i++)
{
LstAnzeige.Items.Add("" + i);

}
}

protected void CmdPrint_Click(object sender, EventArgs e)
{
// Printer Dialog Feld einblenden wo der User den Drucker auswählen und ggf. anpassen kann
// Und dann ListBox Einträge printen
PrintDialog.Document = PrintDocument;
string strText = "";
foreach (object x in LstAnzeige.Items)
{
strText = strText + x.ToString() + "\n";
}
myReader = new StringReader(strText);
if (PrintDialog.ShowDialog() == DialogResult.OK)
{
this.PrintDocument.Print();
}

}

protected void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)

{
float linesPerPage = 0;
float yPosition = 0;
int count = 0;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
string line = null;
Font printFont = this.LstAnzeige.Font;
SolidBrush myBrush = new SolidBrush(Color.Black);
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
// Iterate over the string using the StringReader, printing each line.
while (count < linesPerPage && ((line = myReader.ReadLine()) != null))
yPosition = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont,
myBrush, leftMargin,
yPosition, new StringFormat());
count++;


// If there are more lines, print another page.
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
myBrush.Dispose();
}

}
}

Continue reading...
 
Back
Top