AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Druckrand vom Drucker berücksichtigen
Thema durchsuchen
Ansicht
Themen-Optionen

Druckrand vom Drucker berücksichtigen

Ein Thema von RWarnecke · begonnen am 18. Aug 2009 · letzter Beitrag vom 18. Aug 2009
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Druckrand vom Drucker berücksichtigen

  Alt 18. Aug 2009, 19:55
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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Druckrand vom Drucker berücksichtigen

  Alt 18. Aug 2009, 20:02
Den Druckrand müsstest Du mit MSDN-Library durchsuchenGetDeviceCaps und den entsprechenden PHYSICALOFFSET*-Konstanten herausbekommen können.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Druckrand vom Drucker berücksichtigen

  Alt 18. Aug 2009, 20:07
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.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Druckrand vom Drucker berücksichtigen

  Alt 18. Aug 2009, 20:53
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 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 ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Reinhard Kern

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

Re: Druckrand vom Drucker berücksichtigen

  Alt 18. Aug 2009, 22:00
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.
  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 04:54 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