AGB  ·  Datenschutz  ·  Impressum  







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

TPrinter, Papierformat

Ein Thema von DSCHUCH · begonnen am 12. Apr 2013 · letzter Beitrag vom 13. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

TPrinter, Papierformat

  Alt 12. Apr 2013, 11:54
Hallo,

ich mache ein ganz einfaches Etikett mit TPrinter und Canvas.Textout. Funktioniert soweit gut. Ich muß allerdings programmseitig noch das Papierformat setzen. Dies ist ein Standardformat, welches ich im PrinterSetupDialog anwählen kann.

Offensichtlich gibt es aber keine einfache Möglichkeit das Papierformat zu setzen? Ich hätte erwartet, das ich genau wie ich einen Drucker mittels Printer.Printerindex:=X auch das Papierformat setzen kann : Printer.PaperFormatIndex:=Y, was es aber so scheinbar nicht gibt.

PaperWidth und PaperHeight kann ich zwar auslesen, aber nicht setzen.

Wie kann ich dem Printer sagen, welches Papierforma er verwenden soll?

Danke, Daniel.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 12:07
http://delphi-kb.blogspot.de/2009/04...aper-size.html
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
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 12:10
a) das kommt auf den drucker an,
b) das wird im Drucker definiert (z.b welches Letterformat auf welchem Din-format gedruckt werden soll)
c) der Drucker kann über Escape-Sequencen angesteuert werden.
d) Du hast einen Netz-Spooler der sowieso alles besser weiß

Such Dir eine der obigen Möglichkeiten aus oder nenne eine weitere.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#4

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 12:16
Etiketten und auch Tickets kann man ganz gut mit Fastreport drucken
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#5

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 17:38
DSCHUCH, wozu willst du das Papierformat setzen? Es ist für den Druckaufbau doch nur wichtig, das Papierformat (des Faches) zu KENNEN. Um zu wissen, ob Du ein oder mehrere Bahnen und ein oder mehrere Etiketten in Folge auf ein Blatt drucken kannst.

Das Papierformat SETZEN geht ansich nur bei Endlosdruckern (Endlos-Leporello oder Rollendruckern), und dort auch nur die Länge der Seite (also welchen Vorschub ein FF erzeugt).

Printer.canvas selbst ist prinzipiell endlos in beiden Dimensionen.
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 20:35
Richtig, es ist ein Rollendrucker. Das Standardformat ist ein anderes, als das wir verwenden. Stellt man im Druckertreiber das Standardformat um, funktioniert es nicht mehr richtig, da scheint ein Ei im Druckertreiber zu sein.
Stelle ich das Format über den PrintSetDialog von Delphi ein, funktioniert es super, ist nach dem Neustart aber wieder weg und muß neu eingegeben werden.

Ok, wir werden es mal mit dem Link aus dem 2. Post probieren. http://delphi-kb.blogspot.de/2009/04...aper-size.html

(Ich will kein FR benutzen, einfach nur 3 Zeilen auf ein Etikett, muß ohne eine riesen Komponente gehen, was es auch tut; soll am ende ein Dienst ohne Userinterface werden)

DSCHUCH, wozu willst du das Papierformat setzen? Es ist für den Druckaufbau doch nur wichtig, das Papierformat (des Faches) zu KENNEN. Um zu wissen, ob Du ein oder mehrere Bahnen und ein oder mehrere Etiketten in Folge auf ein Blatt drucken kannst.

Das Papierformat SETZEN geht ansich nur bei Endlosdruckern (Endlos-Leporello oder Rollendruckern), und dort auch nur die Länge der Seite (also welchen Vorschub ein FF erzeugt).

Printer.canvas selbst ist prinzipiell endlos in beiden Dimensionen.
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#7

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 22:23
Richtig, es ist ein Rollendrucker. Das Standardformat ist ein anderes, als das wir verwenden. Stellt man im Druckertreiber das Standardformat um, funktioniert es nicht mehr richtig, da scheint ein Ei im Druckertreiber zu sein.
Daß es sich um einem (Etiketten-)Rollendrucker handelt, hättest Du aber bessser gliech am Anfang erwähnen sollen, da deren Ansteuerung in Bezug auf das Format völlig anders funktioniert als bei Einzelblatt-Druckern.

Ausserdem ist der Ausdruck "Format" vöilig falsch, weil es sich in der Ansteuerung nur um eine Dimension, die Länge handelt, die Breite naturgegeben durch die eingelegte Rolle vorgegeben ist - und die Format-Dimension Breite nur durch Ein- der Mehrbahnigkeit beeinflussbar ist.

Nur gibt es bei Rollendruckern überhaupt kein Problem mit dem "Format" sprich der Etikettenlänge: Man druckt einfach die entsprechende Anzahl Zeilen (oder y-Vorschub) bis zum nächsten Etikett (ohne FF) - fertig.

Sind die Etiketten allerdings vorgestanzt, muss man die Lichtschranke des Druckers einschalten und dann pro Etikett mit FF drucken.
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 22:50
Der Drucker hat vorgestanzte Klebeetiketten. Ein Brother QL irgendwas. Das erste Etikett im Druckertreiber ist 62x29. Das 3. Papierformat (PickUp im Delphi PrinterSetupDialog) ist 62x40 (what ever) - und dieses ist eingelegt.

Ich will nur 3 Strings auf ein Etikett.

Daher:
Printer.PrinterIndex:=MyPrinterIndex;
BeginDoc;
TextOut...;
TextOut...;
TextOut...;
EndDoc;

klappt auch. Ich will dem Drucker nur die Etikettenlänge richtig mitgeben, da er sonst meckert "falsches Format", da das Standardformat im Treiber (also die erste Auswahlmöglichkeit) eine andere ist.
Ist das einmal eingestellt, klappt alles: er schneidet automatisch ab, macht den richtigen Vorschub etc.
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#9

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 23:15
Bei vorgestanzten Etiketten wird
a) das Format (incl. Leerraum) im Druckertreiber gesetzt
b) muß das gewählte Format auch im Treiber auch als gewünschtes Format gespeichert werden
c) muß dort angegeben werden, dass der Treiber das Etikett steuert
d) evtl. auch richtig auf Etiketten statt "Endlos" eingestellt werden (wg. der Aktivität der Lichtschranke - aber das scheint ja richtig eingestellt zu sein).


Dann wird nach einem Seitenvorschub (Printer.NewPage) und Druckende (Printer.EndDoc) dort ein Seitenvorschub entspr. des im Treiber gesetzten Formates ausgelöst (und nach Jobende ein evtl. Vorschub auf die Abrißkante ausgelöst).

Das setzen des Formates in Canvas ist völlig sinnlos und kontraproduktiv - weil, man kann schlecht z.B. A3 in Canvas setzen und der Drucker hat A4 Papier.

Printer.Canvas kennt auch gar kein Format - es ist immer in x und y nahezu unendlich. Format per Printer setzen meint immer das Format im Drucker setzen, nicht für die Printer.canvas-Fläche.

Wenn Du mehrere Etikettenformate haben willst. also neben dem "Standard"-Format (was immer das auch ist, denn es gibt auch bei Etiketten-Druckern kein "Standard", nur Default nach Treiber-Inst.), dann installier für jedes Format einen Treiber und schreib da jeweils das passende Format als Standard rein. Und Speichern!

Alternativ geht nur der RAW-Druck mit der Drucker-Command-Sprache - also Canvas ganz weglassen.
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#10

AW: TPrinter, Papierformat

  Alt 12. Apr 2013, 23:23
Nachtrag:

Es kann auch sein, daß der Drucker dem Treiber die Settings incl. eingelegtes Format mitteilt (s. Manual). Dann liegt der Fehler evtl. auch daran, daß die Etiketten im Drucker nicht eingemessen wurden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:00 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