Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   TPrinter Seitenränder (nicht bedruckbarer Bereich) (https://www.delphipraxis.net/201211-tprinter-seitenraender-nicht-bedruckbarer-bereich.html)

skoschke 2. Jul 2019 12:01

TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Hallo,

in einem Designerprogramm möchte ich die nicht bedruckbaren Bereiche (Seitenränder) des aktuell eingestellten Druckers anzeigen.

GetDeviceCaps HORZSIZE und VERTSIZE geben mir die bedruckbare Größe an.

GetDeviceCaps PHYSICALOFFSETX und PHYSICALOFFSETY die linke obere Ecke des bedruckbaren Bereichs.

Eine rechte untere Ecke gibt es nicht, wie bekomme ich die restlichen /rechten und unteren Ränder?

Ciao
Stefan

Jasocul 2. Jul 2019 12:23

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Vielleicht einfach ausrechnen?

Du kennst die Höhe und Breite. Außerdem ist die obere linke Ecke bekannt.
Ich vermute, die Papiergröße kennst du auch.
So, wie du es geschrieben hast, kennst du auch schon den linken und oberen nicht bedruckbaren Bereich.
Addition und Subtraktion sollten bekannte Begriffe sein.

Oder verstehe ich einfach das Problem nicht?

hoika 2. Jul 2019 12:24

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Hallo,
hilft das hier?

http://www.delphigroups.info/2/1/318312.html

Im Text ist auch noch ein weiterer Link.

Aus dem Thread
If you call GetDeviceCaps with the following values:
PHYSICALWIDTH / PHYSICALHEIGHT you get the paper's physical size (including
border).
HORZRES / VERTRES you get the paper's printable size.
PHYSICALOFFSETX / PHYSICALOFFSETY you get offset from the paper's edge to
the printable area.

DeddyH 2. Jul 2019 12:49

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Gibt es denn Drucker, die links und rechts bzw. oben und unten unterschiedliche Druckbereiche haben? Falls nicht (ich kenne zumindest spontan keinen), verstehe ich die Frage nicht.

skoschke 2. Jul 2019 14:21

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Zitat:

Gibt es denn Drucker, die links und rechts bzw. oben und unten unterschiedliche Druckbereiche haben?
Genau darum geht es, ich weiß es nicht und möchte daher ungern einfach davon ausgehen, dass die nicht bedruckbaren Ränder links und rechts bzw.oben und unten immer gleich sind.

Ciao
Stefan

Schokohase 2. Jul 2019 15:50

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Zitat:

Zitat von DeddyH (Beitrag 1435814)
Gibt es denn Drucker, die links und rechts bzw. oben und unten unterschiedliche Druckbereiche haben? Falls nicht (ich kenne zumindest spontan keinen), verstehe ich die Frage nicht.

Ja, gibt es (sind mir auf jeden Fall schon mal untergekommen).

Aber ist doch auch egal, denn mit der Angabe PyhsicalOffsettX, PhysicalOffsetY sowie der HorzSize und VertSize hat man doch alles, was man braucht.

Die Koordinaten vom Punkt unten rechts erhält man durch
Code:
x = PhysicalOffsetX + HorzSize
y = PhysicalOffsetY + VertSize
(Das ist das, was Jasocul gemeint hat)

Jasocul 3. Jul 2019 07:22

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Zitat:

Zitat von Schokohase (Beitrag 1435836)
Die Koordinaten vom Punkt unten rechts erhält man durch
Code:
x = PhysicalOffsetX + HorzSize
y = PhysicalOffsetY + VertSize
(Das ist das, was Jasocul gemeint hat)

So ähnlich habe ich es gemeint. Um den Rand zu berechnen, muss man aber noch die Papiergröße berücksichtigen. Das sollte aber jetzt kein Problem mehr sein.

skoschke 4. Jul 2019 06:16

AW: TPrinter Seitenränder (nicht bedruckbarer Bereich)
 
Danke, funktioniert nun wie gewünscht :-)

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz