AGB  ·  Datenschutz  ·  Impressum  







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

Canvas Zentriert ausdrucken

Ein Thema von Natcree · begonnen am 3. Jul 2014 · letzter Beitrag vom 7. Jul 2014
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Canvas Zentriert ausdrucken

  Alt 3. Jul 2014, 10:36
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?

Geändert von TBx ( 6. Jul 2014 um 20:45 Uhr) Grund: Titel korrigiert
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.441 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 11:01
Code:
x := (xPosRechterRand + xPosLinkerRand - TextBreite) div 2;
Printer.canvas.TextOut(x, 0, Caption);
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 11:58
wie bekomme ich po linker und rechter Rand ?
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.441 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 12:36
Wenn du selbst ohne eigenen Rand druckst und den gesamten druckbaren Bereich nutzen willst:
Delphi-Quellcode:
xPosLinkerRand := 0;
xPosRechterRand := Printer.PageWidth;
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 12:42
Dann kommt wieder das gleiche raus, was der TE oben stehen hat
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 12:50
Ah ich hab den kleinen Fehlerteufel entdeckt:

Printer.canvas.TextOut((printer.PageWidth-printer.canvas.TextWidth(caption))div 2, 0, Caption);
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 12:52
Klappt nicht ist ein bondrucker mit 8 inch papier. Wie kann ich die Pagewidth oder das papierformat ändern?

druckauflösung ist 202x204 pro inch
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.441 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Canvas Zentiert ausdrucken

  Alt 3. Jul 2014, 13:04
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.

Geändert von Blup ( 3. Jul 2014 um 13:44 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:07 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