Hallo zusammen,
ich habe eine Frage:
ich arbeite mit VisualStudio 2019, WindowsForm, C#
eine Textbox beinhaltet 6 DIN A4 Seiten Text, die ich zuerst auf Bildschirm, dann auf Laserdrucker ausdrucken möchte, mit PreviewDialog
ich habe es bisher nur geschafft, die erste Seite auf Bildschirm und auf Laserdrucker zu drucken, aber wie geht es wenn mehrere Seiten zu drucken sind ?
dieser Code funktioniert nur auf Bildschirm, auf Drucker gibt es nur ein weißes Blatt, warum ?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace EHP_Bauprogramm_V4._5.Menu { public partial class Inhaltsverzeichnis : Form { public Inhaltsverzeichnis() { InitializeComponent(); }
private void AbbrechenToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } int line = 0; private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { { e.HasMorePages = false; Font f = new Font("Arial", 10, FontStyle.Regular); int currentHeight = 0; for (;line <Tbx_Suchwort.Lines.Count();line +=1) { e.Graphics.DrawString(Tbx_Suchwort.Lines [line], f, Brushes.Black, 50, currentHeight+115); currentHeight += f.Height; if (currentHeight >= e.PageBounds.Height - 230) { e.HasMorePages = true; break; } } } }
private void DruckenToolStripMenuItem_Click(object sender, EventArgs e) { printPreviewDialog1.Document = printDocument1; if (printPreviewDialog1.ShowDialog() == DialogResult.OK) { printDocument1.Print(); } } } } |
Bitte kann mir jemand auf einfache Weise einen Code sagen, der mehr als eine Seite Text druckt ?
Vielen Dank
Moderiert von Th69: C#-Tags hinzugefügt
Moderiert von Th69: Titel geändert (deutschen Text hinzugefügt).