Autor Beitrag
Ronaldo
Hält's aus hier
Beiträge: 4

2000, XP
Delphi 6 Enterprise
BeitragVerfasst: Fr 28.10.05 11:03 
Hallo alle zusammen,

ich bräuchte mal bitte Hilfe, hier die Beschreibung:

Ich habe ein Programm mit Delphi 5 Prof. erstellt, dass ankommende Druckjobs (als Datei) zu einen Etikett umwandelt und je nach Etikett an 8 verschiedene Drucker sendet. Bis jetzt waren das auch alles unterschiedliche Drucker, nur jetzt hat unser Kunde, sich zwei mal den gleichen Drucker gekauft. Das Problem ist nun, einer der beiden Drucker druckt auf großen Etiketten und der andere auf kleinen. Je nachdem was nun als letztes am Treiber eingestellt wurde, so druckt er auch die Etiketten. Beispiel: Ich stelle als letztes das Papierformat für die kleinen Etiketten ein und jetzt kommt auch der Job für die kleinen, dann passt noch alles. Kommt nun ein Job für das große Etikett, dann druckt er es auf dem großen Etikett, aber mit dem Papierformat des kleinen. Liegt sowas am Treiber? Habe es jetzt schon mit PDFs ausprobiert und es kommt der gleiche Effekt. Ich denke mal über Delphi müßte ich irgendwie Einfluss nehmen können darauf.

Wenn jemand eine Idee hat, wäre ich für alles dankbar.

Gruß

Ronaldo
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.10.05 11:06 
Wie druckst du denn? Es gibt durchaus die Möglichkeit millimetergenau oder relativ zur Seitengröße zu drucken. Aber ohne Quelltext kann ich keine Lösung für diese Druckmethode anbieten.
Das Printer-Objekt bietet beispielsweise eine Eigentschaft, die die Seitengröße in Pixeln je nach Hardwarekonfiguration angibt.
Ronaldo Threadstarter
Hält's aus hier
Beiträge: 4

2000, XP
Delphi 6 Enterprise
BeitragVerfasst: Fr 28.10.05 11:25 
Ja also, ich bekomme Textdateien die ich in ein TRichEdit schreibe und dann kommt folgendes:

Printer.PrinterIndex := fHolDrucker(Druckername);
Printer.Copies := fAnzahl(DruckJob);

RichEdit1.Print(DruckJob);

mehr mache ich eigentlich nicht und es geht auch immer an den richtigen Drucker. Das mit dem Millimetergenau hab ich mir auch schon angeschaut, dass würde aber vorraussetzen, das ich mir das Papierformat pro Etikett abspeicher und das war halt bis jetzt nicht nötig. Jedes Etikett war am Treiber eingestellt und wurde dann auch so verwendet.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.10.05 11:33 
Im Grunde müsstest du über das Printer-Objekt die Daten zu dem entsprechenden Drucker bekommen können (Ich meine es gibt doch Printer.PageWidth, und daran solltest du doch das aktuelle Format erkennen könen).
Ronaldo Threadstarter
Hält's aus hier
Beiträge: 4

2000, XP
Delphi 6 Enterprise
BeitragVerfasst: Fr 28.10.05 11:39 
Ja damit kann ich die Größe feststellen, aber kommt halt das Falsche bei einem von beiden immer raus. Und ich weiß halt nicht, wie kann ich ihm jetzt sagen, nimm doch das Andere? Kann man nicht irgendwie das Papierformat mit Namen auswählen, da gibt es ja schon ne Menge voreingestellt. Z.B. A4, A3 usw. In meinem Fall sind das natürlich andere.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.10.05 11:46 
Vielleicht hilft dir das:
www.delphipraxis.net...ghlight=papierformat
(Beitrag 17 meine ich)
Ronaldo Threadstarter
Hält's aus hier
Beiträge: 4

2000, XP
Delphi 6 Enterprise
BeitragVerfasst: Fr 28.10.05 14:15 
Hi, also ich habe die Funktion eingebunden und vor dem RichEdit1.Print aufgerufen und siehe da, die PDFs haben dann das am Treiber eingestellte Format. Unglaublich, ich verstehe zwar nicht was das zuweisen der Breite und Höhe zu bedeuten hat, aber es scheint zu funktionieren. Leider kann ich den Echttest erst am Montag machen, aber trotzdem vielen vielen Dank für die Hilfe.

Bin echt begeistert.

Gruß

Ronald