Benutzerdefinierte Papiergrösse
Moderator: Moderatoren
Benutzerdefinierte Papiergrösse
Hallo,
Ich möchte mit einem Nadeldrucker massenhaft Einzahlungsscheine (Endlos-Formular, Traktor-Einzug) bedrucken. Das Papierformat entspricht ungefähr A5-hoch (Empfangsschein über dem Einzahlungsschein), ist aber dummerweise etwa 1,5 mm länger als A5. Das heisst, wenn ich als Form A5 wähle, passt nur der erste Ausdruck genau, danach verschiebt sich alles (nach oben).
In der XbpPrinter-Klasse habe ich noch keine passende Methode gefunden, um die Papiergrösse selbst zu setzen.
:setFormSize() arbeitet mit der FormID, aperSize() dient nur der Abfrage.
Wie lässt sich eine benutzerdefinierte Papiergrösse einstellen?
Vielen Dank im voraus für jeden Hinweis!
Ich möchte mit einem Nadeldrucker massenhaft Einzahlungsscheine (Endlos-Formular, Traktor-Einzug) bedrucken. Das Papierformat entspricht ungefähr A5-hoch (Empfangsschein über dem Einzahlungsschein), ist aber dummerweise etwa 1,5 mm länger als A5. Das heisst, wenn ich als Form A5 wähle, passt nur der erste Ausdruck genau, danach verschiebt sich alles (nach oben).
In der XbpPrinter-Klasse habe ich noch keine passende Methode gefunden, um die Papiergrösse selbst zu setzen.
:setFormSize() arbeitet mit der FormID, aperSize() dient nur der Abfrage.
Wie lässt sich eine benutzerdefinierte Papiergrösse einstellen?
Vielen Dank im voraus für jeden Hinweis!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Benutzerdefinierte Papiergrösse
hi,
zurück was am Drucker eingestellt ist. Dieses kannst also unter Drucker/
Eigenschaften/Geräteeinstellungen/Zuordnung zwischen Papierformat und
Ausgabeschacht/Traktoreinzug mal andere Werte einstellen.
gruss by OHR
Jimmy
Du suchst an der falschen Stelle. Das XbpPrinter Object gibt dir nurRoger hat geschrieben: Ich möchte mit einem Nadeldrucker massenhaft Einzahlungsscheine (Endlos-Formular, Traktor-Einzug) bedrucken. Das Papierformat entspricht ungefähr A5-hoch (Empfangsschein über dem Einzahlungsschein), ist aber dummerweise etwa 1,5 mm länger als A5. Das heisst, wenn ich als Form A5 wähle, passt nur der erste Ausdruck genau, danach verschiebt sich alles (nach oben).
In der XbpPrinter-Klasse habe ich noch keine passende Methode gefunden, um die Papiergrösse selbst zu setzen.
:setFormSize() arbeitet mit der FormID, aperSize() dient nur der Abfrage.
Wie lässt sich eine benutzerdefinierte Papiergrösse einstellen?
zurück was am Drucker eingestellt ist. Dieses kannst also unter Drucker/
Eigenschaften/Geräteeinstellungen/Zuordnung zwischen Papierformat und
Ausgabeschacht/Traktoreinzug mal andere Werte einstellen.
gruss by OHR
Jimmy
Hmm ... Im Dialog Druckereinstellungen lässt sich tatsächlich eine benutzerdefinierte Papiergrösse einstellen, aber die gilt offenbar nur für den aktuellen Printjob!
Beim nächsten Aufruf "erinnert" sich der Druckertreiber zwar noch, dass er eine benutzerdefinierte Papiergrösse verwenden soll, aber nicht mehr an die Masse - und verwendet einfach die Defaultwerte. In meinem Fall (Epson LQ-670) sind das 254 x 254 [1/10 mm]: ziemlich klein
Und mit :setFormSize() kann ich ebenfalls das Formular wählen (z.B. A5, oder eben "benutzerdefiniert"), aber wieder ohne die exakten Masse mitzugeben.
Gäbe es vielleicht einen Weg, diese zusätzliche Funktion des Setup-Dialoges zu nutzen, obwohl das in der XbpPrinter-Klasse nicht vorgesehen ist?
Beim nächsten Aufruf "erinnert" sich der Druckertreiber zwar noch, dass er eine benutzerdefinierte Papiergrösse verwenden soll, aber nicht mehr an die Masse - und verwendet einfach die Defaultwerte. In meinem Fall (Epson LQ-670) sind das 254 x 254 [1/10 mm]: ziemlich klein
Und mit :setFormSize() kann ich ebenfalls das Formular wählen (z.B. A5, oder eben "benutzerdefiniert"), aber wieder ohne die exakten Masse mitzugeben.
Gäbe es vielleicht einen Weg, diese zusätzliche Funktion des Setup-Dialoges zu nutzen, obwohl das in der XbpPrinter-Klasse nicht vorgesehen ist?
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo Roger,
Hast du mal unter Drucker- und Faxgeräte mit der rechten Maustaste die Servereigenschaften aufgerufen und dein Papierformat angelegt ? Es sollte dann für die Drucker verfügbar sein. Meistens sind für Endlosformulare Zollangaben vorhanden, d.h. statt A4 hat man das etwas längere 12" (30,72 cm) Papier oder viele Formulare sind auch in 8" (20,48 cm) oder 6" (15.36 cm). In deinem Fall würde ich mal auf 6" Papier tippen.
Hast du mal unter Drucker- und Faxgeräte mit der rechten Maustaste die Servereigenschaften aufgerufen und dein Papierformat angelegt ? Es sollte dann für die Drucker verfügbar sein. Meistens sind für Endlosformulare Zollangaben vorhanden, d.h. statt A4 hat man das etwas längere 12" (30,72 cm) Papier oder viele Formulare sind auch in 8" (20,48 cm) oder 6" (15.36 cm). In deinem Fall würde ich mal auf 6" Papier tippen.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Sieh mal diesen Befehl in der Hilfe:Roger hat geschrieben:Gäbe es vielleicht einen Weg, diese zusätzliche Funktion des Setup-Dialoges zu nutzen, obwohl das in der XbpPrinter-Klasse nicht vorgesehen ist?
das müsste doch das sein was du willst oder ?XbpPrinter()
Syntax
:setupDialog() --> self
Rückgabe
Die Methode gibt das Objekt zurück, das die Methode ausgeführt hat.
Beschreibung
Die Methode :setupDialog() aktiviert den Dialog, mit dem Jobmerkmale eines Druckjobs eingestellt werden. Er wird dazu verwendet, druckerspezifische Einstellungen für einen Druckjob festzulegen (z.B. die Papiergröße, oder ob im Hoch- oder Querformat gedruckt werden soll).
Die Methode schließt den Ausgabekanal des Druckers und darf daher nicht zwischen :startDoc() und :endDoc() aufgerufen werden.
Aber wie Wolfgang schon weiter oben geschrieben hat, werden alle Einstellungen in dieser Ebene normalerweise nicht dauerhaft gespeichert.
Dafür muss man das Druckerobjekt direkt aufrufen.
Gruß
Hubert
Hubert
Hallo Wolfgang
Was meinst Du genau mit "Server-Einstellungen"? Die Druckereinstellungen habe ich wie erwähnt schon einige Male angepasst, die genauen Masse werden aber offenbar nicht gespeichert Aber mit dem Begriff "Server-Einstellungen" kann ich an der Stelle nichts anfangen ...
Danke und viele Grüsse,
Roger
Was meinst Du genau mit "Server-Einstellungen"? Die Druckereinstellungen habe ich wie erwähnt schon einige Male angepasst, die genauen Masse werden aber offenbar nicht gespeichert Aber mit dem Begriff "Server-Einstellungen" kann ich an der Stelle nichts anfangen ...
Danke und viele Grüsse,
Roger
Hallo Hubert
Eigentlich möchte ich den Printer-Setup-Dialog lieber nicht anzeigen. Und eben auch den Benutzern nicht zumuten, dass sie sich in dem Dialog jedesmal zur benutzerdefinierten Papiergrösse durchhangeln um dort 1490 x 2115 zu erfassen.
Oder meintest Du etwas anderes?
Danke und Gruss,
Roger
Eigentlich möchte ich den Printer-Setup-Dialog lieber nicht anzeigen. Und eben auch den Benutzern nicht zumuten, dass sie sich in dem Dialog jedesmal zur benutzerdefinierten Papiergrösse durchhangeln um dort 1490 x 2115 zu erfassen.
Oder meintest Du etwas anderes?
Danke und Gruss,
Roger
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
Hardware genau so wenig wie mein alter NEC P60. Du must schon ein
eigenes Format in die :forms() Liste bekommen sonst kannst du es auch
nicht verwenden.
Zu beachten, wenn du nicht vorher "den" Printer einstellst das M$ immer
den "default Standart Drucker" nimmt.
Bei meinem Kyocera 1010 geht das wenn ich dann
verwenden.
Ich gehe mal davon aus das du mit
arbeitest.
was ich aber an der ganzen Sache nicht verstehe wie du es grundsätzlich
schaffst, mit einem Nadeldrucker (was für einer?), solche Formulare zu
bedrucken und so zu justieren das es "passt". Wenn ich mich richtig
erinnere musste ich bei meinem P60 per "micropitch" und ESC Sequenzen
rumhantieren (Grafik Mode) um ein befriedigendes Ergebniss zu erhalten.
gruss by OHR
Jimmy
ist das selbe wie Geräte EinstellungRoger hat geschrieben: Was meinst Du genau mit "Server-Einstellungen"?
gibt es an der Stelle einen Button "hinzufügen" ? Wenn nein kann das dieRoger hat geschrieben: Eigentlich möchte ich den Printer-Setup-Dialog lieber nicht anzeigen. Und eben auch den Benutzern nicht zumuten, dass sie sich in dem Dialog jedesmal zur benutzerdefinierten Papiergrösse durchhangeln um dort 1490 x 2115 zu erfassen.
Hardware genau so wenig wie mein alter NEC P60. Du must schon ein
eigenes Format in die :forms() Liste bekommen sonst kannst du es auch
nicht verwenden.
Zu beachten, wenn du nicht vorher "den" Printer einstellst das M$ immer
den "default Standart Drucker" nimmt.
Bei meinem Kyocera 1010 geht das wenn ich dann
Code: Alles auswählen
:setFormSize(XBPPRN_FORM_USER)
Ich gehe mal davon aus das du mit
Code: Alles auswählen
SET PRINTER TO OBJECT <oXbpPrinter>
was ich aber an der ganzen Sache nicht verstehe wie du es grundsätzlich
schaffst, mit einem Nadeldrucker (was für einer?), solche Formulare zu
bedrucken und so zu justieren das es "passt". Wenn ich mich richtig
erinnere musste ich bei meinem P60 per "micropitch" und ESC Sequenzen
rumhantieren (Grafik Mode) um ein befriedigendes Ergebniss zu erhalten.
gruss by OHR
Jimmy
Zuletzt geändert von AUGE_OHR am Do, 31. Jan 2008 21:49, insgesamt 1-mal geändert.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
das kann ich verstehen, deshalb muss man es einmalig im Druckobjekt direkt ändern.Roger hat geschrieben:Hallo Hubert
Eigentlich möchte ich den Printer-Setup-Dialog lieber nicht anzeigen.
ich wollte nur zeigen wie man diesen aufrufen kann, da ich dich so verstanden hatte, dass du meinst das geht nicht.Roger hat geschrieben:Oder meintest Du etwas anderes?
Gruß
Hubert
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo Roger,
für das Windows Drucksystem kann man eigene Formulargrößen erstellen, die dann bei den einzelnen Druckern über die Eigenschaften eingestellt werden können. Wenn du im geöffneten Fenster "Drucker und Faxgeräte" das Kontextmenü mit der rechten Maustaste öffnest, so gibt es dort den Menüpunkt "Servereigenschaften". Dort kannst du z.B. "MeinFormat" mit benutzerdefinierten Seitenwerten neu anlegen, diese hast du nach dem Abspeichern dann in den einzelnen Druckereinstellungen zur Verfügung.
für das Windows Drucksystem kann man eigene Formulargrößen erstellen, die dann bei den einzelnen Druckern über die Eigenschaften eingestellt werden können. Wenn du im geöffneten Fenster "Drucker und Faxgeräte" das Kontextmenü mit der rechten Maustaste öffnest, so gibt es dort den Menüpunkt "Servereigenschaften". Dort kannst du z.B. "MeinFormat" mit benutzerdefinierten Seitenwerten neu anlegen, diese hast du nach dem Abspeichern dann in den einzelnen Druckereinstellungen zur Verfügung.
Viele Grüße
Wolfgang
Wolfgang
Hallo zusammen
Vielen Dank erstmal für die verschiedenen Hinweise!
Momentan scheint mir das Definieren eines eigenen Formulars gemäss Wolfgangs Tipp am erfolgsversprechendsten.
Werde ich gleich morgen testen!
Antwort auf die Frage von Jimmy:
Die eigentlichen Druckausgaben werden dann mit GraStringAt() positionsgenau ausgegeben. Funktioniert alles, egal ob ich einen Laserdrucker oder den Epson LQ-670 Nadeldrucker ansteuere.
Wenn nur die ungewöhnliche Endlos-Formularlänge nicht wäre ...
Und schliesslich noch eine Frage betreffend des Kommentars von Hubert:
Viele Grüsse,
Roger
Vielen Dank erstmal für die verschiedenen Hinweise!
Momentan scheint mir das Definieren eines eigenen Formulars gemäss Wolfgangs Tipp am erfolgsversprechendsten.
Werde ich gleich morgen testen!
Antwort auf die Frage von Jimmy:
Ich verwende eine Druckerklasse eines Kollegen aus der Zürcher Xbase-Usergroup. Darin wird mit XbpPrinter gearbeitet, d.h. zuerst ein Printer-Objekt erzeugt und konfiguriert und dann ein Presentation-Space erzeugt.Jimmy hat geschrieben: was ich aber an der ganzen Sache nicht verstehe wie du es grundsätzlich
schaffst, mit einem Nadeldrucker (was für einer?), solche Formulare zu
bedrucken und so zu justieren das es "passt".
Die eigentlichen Druckausgaben werden dann mit GraStringAt() positionsgenau ausgegeben. Funktioniert alles, egal ob ich einen Laserdrucker oder den Epson LQ-670 Nadeldrucker ansteuere.
Wenn nur die ungewöhnliche Endlos-Formularlänge nicht wäre ...
Und schliesslich noch eine Frage betreffend des Kommentars von Hubert:
Genau das stelle ich mir vor! Meinst Du auch sowas wie Wolfgang, oder auf einem anderen Weg (alles aus meiner Applikation heraus)?Hubert hat geschrieben: deshalb muss man es einmalig im Druckobjekt direkt ändern.
Viele Grüsse,
Roger
Hallo zusammen
Jetzt hat es doch noch geklappt
Die Einstellung der benutzerdefinierten Papiergrösse bei den Druckereigenschaften werden nur dann dauerhaft gespeichert, wenn der Druckerdialog nicht im Rahmen eines Druckjobs aufgerufen wird, sondern unter Einstellungen - Drucker und Faxgeräte.
Danach lässt sich dieses Formular auch verwenden:
Eigentlich ganz einfach - ich hatte nur dummerweise zig-mal die Formulargrösse im Druckerdialog des Druckjobs geändert, und das ging jedesmal wieder verloren ...
Danke nochmal für alle Eure Hinweise!
Viele Grüsse,
Roger
Jetzt hat es doch noch geklappt
Die Einstellung der benutzerdefinierten Papiergrösse bei den Druckereigenschaften werden nur dann dauerhaft gespeichert, wenn der Druckerdialog nicht im Rahmen eines Druckjobs aufgerufen wird, sondern unter Einstellungen - Drucker und Faxgeräte.
Danach lässt sich dieses Formular auch verwenden:
Code: Alles auswählen
:setFormSize(XBPPRN_FORM_USER)
Danke nochmal für alle Eure Hinweise!
Viele Grüsse,
Roger