AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Maßeinheitengenau ein Canvas ausdrucken

Ein Thema von PAX · begonnen am 27. Mär 2007 · letzter Beitrag vom 8. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#11

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 28. Mär 2007, 15:09
Zitat von matashen:
gern geschehen

Schließe ich mich bedingungslos an!
  Mit Zitat antworten Zitat
Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#12

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 7. Apr 2007, 16:23
So, das exakte Drucken von gezeichneten Linien funktioniert maßgenau. Textausgabe auf dem Drucker klappt zwar einigermaßen exakt, allerdings scheint es dennoch kleinere Schrifthöhenunterschiede zu geben, wenn ich einen Druck von 600dpi mit 150dpi vergleiche...

TrackBar1 enthält die Schrifthöhe. Mit dieser Formel berechne ich die Ausdruckschrifthöhe:
Code:
druck->Canvas->Font->Height = -Form1->TrackBar1->Position/25.4 *druck->Canvas->Font->PixelsPerInch;
Aber wie gesagt, es weicht ganz leicht von der Bildschirmvorschau ab und auch von unterschiedlichen dpi-Einstellungen des Druckers. Die Schriftgröße scheint bei 16-facher Vergrößerung identisch zu sein, allerdings wird bei der niedrigeren dpi-Zahl der ganze Text um einige Pixel nach rechts und nach unten versetzt.

Was habe ich nicht bedacht?
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#13

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 7. Apr 2007, 18:09
Zitat von PAX:
So, das exakte Drucken von gezeichneten Linien funktioniert maßgenau. Textausgabe auf dem Drucker klappt zwar einigermaßen exakt, allerdings scheint es dennoch kleinere Schrifthöhenunterschiede zu geben, wenn ich einen Druck von 600dpi mit 150dpi vergleiche...

TrackBar1 enthält die Schrifthöhe. Mit dieser Formel berechne ich die Ausdruckschrifthöhe:
Code:
druck->Canvas->Font->Height = -Form1->TrackBar1->Position/25.4 *druck->Canvas->Font->PixelsPerInch;
Aber wie gesagt, es weicht ganz leicht von der Bildschirmvorschau ab und auch von unterschiedlichen dpi-Einstellungen des Druckers. Die Schriftgröße scheint bei 16-facher Vergrößerung identisch zu sein, allerdings wird bei der niedrigeren dpi-Zahl der ganze Text um einige Pixel nach rechts und nach unten versetzt.

Was habe ich nicht bedacht?
Hallo,

wahrscheinlich, dass die Druckertreiber generell alles andere als perfekt sind. Ich habe mich mit dem Problem schon häufiger herumgeschlagen (für technische Linienzeichnungen) und festgestellt, dass Drucker an sich schon in der Lage sind, auf 0.1 mm genau zu drucken, dass aber von Drucker zu Drucker und von Treiber zu Treiber Unterschiede im mm-Bereich bestehen. Manche hochwertigen Druckertreiber sehen eine manuelle Korrektur vor (unter Eigenschaften kann man Prozente eingeben), aber auch die sind oft nicht genau genug - 0.1 % sind bei A4 immerhin schon 0.3 mm.

Ich denke, es wäre notwendig, in den eigenen Drucker-Routinen eine zusätzliche Korrektur an den berechneten Faktoren vorzusehen mit etwa +- 5% und einer Auflösung von 0.01% (!). Dann sollte man nach entsprechendem Vermessen einiger Ausdrucke eine Genauigkeit von 0.2mm oder so hinkriegen.

Die Umrechnung von Schriftgrössen muss damit nicht übereinstimmen, notfalls müsste man die extra behandeln.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 7. Apr 2007, 19:54
Hallo,

ein Visitenkarten-Programm, dass ich benutze, versucht zuerst ein Fadenkreuz mit Skala in die Mitte des Blattes zu drucken und fordert den Benutzer dann auf, das Blatt in der Mitte zu falten und die Abweichung zwischen Falz und Fadenkreuz anzugeben. Daraus wird dann ein Korrektiv berechnet. Wenns dir also um genaue Ausrichtung geht, kannst du es so machen.

Um das Korrektiv umzusetzen gibt es eine API-Funktion, mit der du den Koordinatennullpunkt des Druckercanvas verschieben kannst - MSDN-Library durchsuchenSetWindowOrg könnte es sein, ich weiß es nicht genau.
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#15

Re: Maßeinheitengenau ein Canvas ausdrucken

  Alt 8. Apr 2007, 13:23
Der Zeichenabstand weicht auch ab, musste ich gerade feststellen.

Ich hatte auch schon den Gedanken, den Rahmen und den Text als eine Gesamtgrafik zu betrachten und diese entsprechend zu vergrößern für den Druck, allerdings bin ich mir nicht sicher, welche optische Qualität der Text dann nachher hat. Testen konnte ich dies bisher nicht, weil während des Vergrößerungsvorgangs jedes Mal der gesamte Computer massiv einfriert, wenn die Grafik schon vorher ziemlich groß war. Oder vielleicht lags auch am Adobe PDFwriter? Ich habs noch nie direkt ausgedruckt - wäre ja während der Entwicklungsphase reine Papierverschwendung!

Wie macht es eigentlich das Microsoft Office-Paket? Ist dort das Druckresultat nicht immer äußerst genau? Die arbeiten doch auch nicht mit Kallibrierungsdrucken?

Ich verstehe halt nicht, warum der Textdruck so ungenau ist (mit Methode TextOutA oder so) und die gezeichneten Linien hingehen völlig exakt?

Also nochmal zusammengefasst: Der Text erscheint bei unterschiedlichen dpi-Auflösungen nicht exakt an der selben Stelle, obwohl mein Code determiniert ist, und der Zeichenabstand variiert dann ebenfalls.

Ich danke euch.
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz