Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Canvas Zentriert ausdrucken (https://www.delphipraxis.net/180958-canvas-zentriert-ausdrucken.html)

Natcree 3. Jul 2014 10:36


Canvas Zentriert ausdrucken
 
Hallo ich will mit folgendem Code ein String ausdrucken

Delphi-Quellcode:
Printer.BeginDoc;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);
printer.Canvas.Font.Size:=20;
caption:='Hallo';
Printer.canvas.TextOut((printer.PageWidth-canvas.TextWidth(caption))div 2, 0, Caption);
Printer.endDoc;
Jedoch kommt es nicht zentriert raus was kann ich da noch machen?

Blup 3. Jul 2014 11:01

AW: Canvas Zentiert ausdrucken
 
Code:
x := (xPosRechterRand + xPosLinkerRand - TextBreite) div 2;
Printer.canvas.TextOut(x, 0, Caption);

Natcree 3. Jul 2014 11:58

AW: Canvas Zentiert ausdrucken
 
wie bekomme ich po linker und rechter Rand ?

Blup 3. Jul 2014 12:36

AW: Canvas Zentiert ausdrucken
 
Wenn du selbst ohne eigenen Rand druckst und den gesamten druckbaren Bereich nutzen willst:
Delphi-Quellcode:
xPosLinkerRand := 0;
xPosRechterRand := Printer.PageWidth;

baumina 3. Jul 2014 12:42

AW: Canvas Zentiert ausdrucken
 
Dann kommt wieder das gleiche raus, was der TE oben stehen hat :thumb:

baumina 3. Jul 2014 12:50

AW: Canvas Zentiert ausdrucken
 
Ah ich hab den kleinen Fehlerteufel entdeckt:

Printer.canvas.TextOut((printer.PageWidth-printer.canvas.TextWidth(caption))div 2, 0, Caption);

Natcree 3. Jul 2014 12:52

AW: Canvas Zentiert ausdrucken
 
Klappt nicht ist ein bondrucker mit 8 inch papier. Wie kann ich die Pagewidth oder das papierformat ändern?

druckauflösung ist 202x204 pro inch

baumina 3. Jul 2014 12:56

AW: Canvas Zentiert ausdrucken
 
Im Printersetup.

Blup 3. Jul 2014 13:04

AW: Canvas Zentiert ausdrucken
 
Normalerweise zentriert man auch über dem Dokumenteninhalt.
Wenn es denn unbedingt über die ganze Papierbreite sein soll, vieleicht so:
Delphi-Quellcode:
  xPosLinkerRand := 0 - GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
  xPosRechterRand := xPosLinkerRand + GetDeviceCaps(Printer.Handle, PHYSICALWIDTH);
Allerdings muss dafür im Druckertreiber auch die richtige Papierbreite eingestellt sein.

Klappt nicht ersetzt übriegens keine Fehlerbeschreibung.

Natcree 3. Jul 2014 13:23

AW: Canvas Zentiert ausdrucken
 
Der 8 in. ist ein gestellt die breite des Bon hat 8 cm vielleicht liegt es daran wie kann ich es ändern? er zeigt mir nur größere inch werte bei den druckereinstellungen an


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Seite 1 von 3  1 23      

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