vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Schrifthöhe mit Graphics-Funktion "MeasureString" für Display und Druck 
Autor: Rainer
Datum: 19.12.17 17:01

Hallo,
ich habe eine Routine geschrieben, mit der Datensätze einer DB-Tabelle gedruckt werden. Vor der Druckausgabe erzeuge ich eine Bildschirmübersicht mit dem Steuerelement "PrintPreviewControl". Diese dient in erster Linie dazu die Seitenanzahl der Dokuments zu ermitteln und damit eine Auswahl der zu druckenden Seiten zu ermöglichen. In der Testphase habe ich mit einer DB-Tabelle, die anhand der von PrintPreviewControl erstellten Übersicht insgesamt 99 Druckseiten ergab, gearbeitet. Als ich versuchte die Seite 99 auszudrucken, erhielt ich eine leere Seite. Erst bei Seite 97 erhielt ich das Ende der Liste gedruckt. Ein Vergleich mit dem Inhalt der DB-Tabelle stellte ich fest: es fehlte kein einziger Datensatz.
Daraufhin prüfte ich die Seite 1 genauer und fand heraus, daß diese im Vergleich zur Bildschirmanzeige zwei Datensätze mehr enthielt.
Zur Herangehensweise beim Aufbau der zu druckenden Datenzeile: mit der Graphics-Funktion "MeasureString" ermittle ich die für die Druckausgabe erforderliche Druckraumhöhe (abhängig von der FONT-Einstellung), prüfe ob dieser Platz auf der Seite noch verfügbar ist und führe den Druck ggf. auf der neuen Seite aus.
Bei der Suche nach der Ursache für die unterschiedliche Datensatzanzahl pro Seite stellte ich fest, daß die Graphics-Funktion für die Zeilenhöhe bei gleicher FONT-Einstellung (Schriftart, Style und Size) für die Darstellung im PrintPreviewControl und in der Druckausführung unterschiedliche Werte berechnet.

Beispiel:
Zeilenhöhe bei Arial, 11, mager für Display 19,478 Grafikpunkte und für den Druck 18,978 Grafikpunkte; das sind beim Druck im Vergleich zur Bildschirmdarstellung 2,566 % weniger Grafikpunkte. Dieser Prozentsatz ist stabil, d.h. er gilt für alle von mir getesteten FONT-Einstellungen. Ich konnte dies aber nur an einem Drucker (Brother MFC-J480 DW) testen. Da es sich bei MeasureString um eine Systemfunktion handelt, würde ich eine druckerabhängige Ursache ausschließen.

Bevor ich nun in meinem Algorithmus einen Korrekturfaktor einführe, möchte ich Euch fragen:
1. Hat jemand von Euch auch diese Diskrepanz festgestellt?
2. Welche anderen Möglichkeiten der Umgehung dieser Diskrepanz kennt Ihr?
3. Habe ich ggf. die Graphics-Funktion falsch verwendet?

In der Hoffnung jemand kann mir weiterhelfen, wünsche ich der Forum-Gemeinde schöne Feiertage.
Rainer.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schrifthöhe mit Graphics-Funktion "MeasureString" für Displa...1.739Rainer19.12.17 17:01
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.066sv0001020.12.17 19:40
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.098Kuno6021.12.17 00:36
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.096Manfred X21.12.17 09:08
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.189Franki23.12.17 04:20
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.209Manfred X23.12.17 11:09
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.089Rainer25.12.17 13:02
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.133Rainer25.12.17 13:04
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.129Rainer25.12.17 13:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel