Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Drucken: Anzahl der Zeichen pro Zeile
Dr.Z
myCSharp.de - Member

Avatar #avatar-2603.jpg


Dabei seit:
Beiträge: 93
Herkunft: Nettetal

Themenstarter:

Drucken: Anzahl der Zeichen pro Zeile

beantworten | zitieren | melden

Hallo zusammen,

ich beschäftige mich momentan mit dem Drucken aus C# heraus. Das klappt an sich eigentlich ganz gut.
Um das drucken an sich wesentlich flexibler zu gestalten, habe ich mich gefragt, ob es möglich ist, anhand der Schriftgröße und z.B der Papiergröße des Druckers eine maximale Zeilenanzahl bzw. Zeichenanzahl pro Zeile zu ermitteln.

Als Schrifttyp verwende ich immer "FontFamily.GenericMonospace". Das heißt, alle Zeichen besitzen die selbe Breite.

Da aber die Schriftgröße von Druck zu Druck varieren kann, wollte ich fragen, ob es eine möglichkeit gibt zu ermitteln, wieviele Zeichen pro Zeile und Zeilen mir insgesamt zur Verfügung stehen.

Bei einer Seitengröße von 200 + 400 LE und einer Schriftgröße von 11 kann ich ja nicht wie folgt vorgehen:
200 / 11 = 18,18... -> 18 Zeichen Pro Zeile
400 / 11 = 36,36... -> 36 Zeichen Pro Zeile.

Das geht ja nicht. :-)
Habt ihr da eine Idee, wie ich da genau vorgehen kann / soll / muss?

vielen Dank

Dr. Z
private Nachricht | Beiträge des Benutzers
frisch
myCSharp.de - Member

Avatar #avatar-1724.gif


Dabei seit:
Beiträge: 2118
Herkunft: Coburg / Oberfranken

beantworten | zitieren | melden

Hallo Dr.Z,

die DPI kann sich von Druckereinstellung zu Druckereinstellung unterscheiden -> andere Maße...

Außerdem musst du auch Seitenränder und Papiermaße beachten.

Du kannst aber per Graphics-Objekt berechnen, welche Breite der Text benötigt.

Mit

Graphics g = Graphics.FromHandle(printForm.Handle);
g.MeasureString(...);
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
private Nachricht | Beiträge des Benutzers