Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Druckrand vom Drucker berücksichtigen (https://www.delphipraxis.net/138854-druckrand-vom-drucker-beruecksichtigen.html)

RWarnecke 18. Aug 2009 18:55


Druckrand vom Drucker berücksichtigen
 
Hallo zusammen,

ich habe da ein kleine Problem. Ich habe ein kleine Programm geschrieben, welches mit die Vorlage Zwckform 65 bedruckt. Funktioniert auch wunderbar auf meinem Drucker. Nun wollte ich das Programm an einem anderen Drucker testen, nur da wird der Ausdruck um ein paar Milimeter versetzt ausgedruckt. Den Ausdruck realisiere ich folgendermaßen :
Delphi-Quellcode:
uses
  Printers;

{...}
  with Printers do
  begin
    BeginDoc;
    { Entsprechende Anweisungen mit Canvas }
    EndDoc;
  end;
{...}
Wie kann ich hierbei den Druckrand des Drucker berücksichtigen, dass der Ausdruck auf dem Blatt immer an der gleichen Stelle rauskommt, egal welchen Druckertyp ich verwende ?

DeddyH 18. Aug 2009 19:02

Re: Druckrand vom Drucker berücksichtigen
 
Den Druckrand müsstest Du mit MSDN-Library durchsuchenGetDeviceCaps und den entsprechenden PHYSICALOFFSET*-Konstanten herausbekommen können.

Satty67 18. Aug 2009 19:07

Re: Druckrand vom Drucker berücksichtigen
 
Randbreite erfahren sollte kein Problem sein, RWarneke hat ja sogar mal eine Drucker-Komponente geschrieben (glaube ich...)

Wenn sichergestellt werden muss, das der Druck auch mit Randabständen immer gleich ist, ausreichend Reserve einbauen. Ich verwende eine Randbreite, die bei den meisten Druckern ausreicht: Oben 15mm, restliche Ränder 7mm

Also oben 15mm Minus tatsächlicher Rand ist dann meine erste bedruckbare Position im Programm.

RWarnecke 18. Aug 2009 19:53

Re: Druckrand vom Drucker berücksichtigen
 
Zitat:

Zitat von Satty67
Randbreite erfahren sollte kein Problem sein, RWarneke hat ja sogar mal eine Drucker-Komponente geschrieben (glaube ich...)

Danke für den kleinen Hinweis mit dem Zaunpfahl. Aber in meiner Komponente ist die Ermittlung des Druckrandes nicht drin. Aber ich habe es schon in meine ToDo-Liste mit aufgenommen.

Zitat:

Zitat von Satty67
Wenn sichergestellt werden muss, das der Druck auch mit Randabständen immer gleich ist, ausreichend Reserve einbauen. Ich verwende eine Randbreite, die bei den meisten Druckern ausreicht: Oben 15mm, restliche Ränder 7mm

Also oben 15mm Minus tatsächlicher Rand ist dann meine erste bedruckbare Position im Programm.

Danke, dass ist für mich schonmal ein wichtiger Hinweis. Mir geht es nicht darum wie ich den Druckrand ermittel, sondern wie ich diesen beim Positionieren der Texte und/oder Grafiken mit Canvas berücksichtige ?

Reinhard Kern 18. Aug 2009 21:00

Re: Druckrand vom Drucker berücksichtigen
 
Zitat:

Zitat von RWarnecke
.... Mir geht es nicht darum wie ich den Druckrand ermittel, sondern wie ich diesen beim Positionieren der Texte und/oder Grafiken mit Canvas berücksichtige ?

Hallo,

also entweder berücksichtigst du bei allen Druckausgaben einen XOffset, YOffset (schön wenn man das von Anfang an eingeplant hat) oder du verschiebst den Nullpunkt mit SetWindowOrgEx / SetViewportOrgEx - aber das ist halt so ein verhasstes Teufelszeug aus der Win32-API und kein "echtes" Delphi.

Gruss Reinhard

PS ich habe das bei meinen Druck-Klassen von Anfang an drin aus dem entgegengesetzten Grund: ich wollte einen einstellbaren Rand.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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