Frage zu SetDuplexMode
Moderator: Moderatoren
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Frage zu SetDuplexMode
Hallo,
Folgende Eigenheit ist mir aufgefallen
ich nutze Druckerobjekt:SetDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
Funktioniert auch einwandfrei bei mehrseitigen Drucken.
Was mir nicht gefällt:
Das Blatt wird auch bei einem einseitigen Druckauftrag nochmal eingezogen.
Kann man das abstellen?
Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
Gruß Stefan
Folgende Eigenheit ist mir aufgefallen
ich nutze Druckerobjekt:SetDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
Funktioniert auch einwandfrei bei mehrseitigen Drucken.
Was mir nicht gefällt:
Das Blatt wird auch bei einem einseitigen Druckauftrag nochmal eingezogen.
Kann man das abstellen?
Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
Gruß Stefan
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Der Drucker auch nicht
Du könntest die Datenermittlung durchlaufen ohne zu drucken und die Anzahl der Seiten ermitteln.
Eventuell kann man dem Drucker auch einstellen "leere Seiten" nicht zu drucken, eventuell erkennt er dann vor dem Einziehen, dass es eine leere Seite wird.
Du könntest die Datenermittlung durchlaufen ohne zu drucken und die Anzahl der Seiten ermitteln.
Eventuell kann man dem Drucker auch einstellen "leere Seiten" nicht zu drucken, eventuell erkennt er dann vor dem Einziehen, dass es eine leere Seite wird.
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Ich würde nicht ein zweimaliges Durchlaufen des Erstellens vornehmen.mini990 hat geschrieben:Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
Versuche vor dem Druckbefehl zu bestimmen, ob bloss wenig Daten entstehen werden. Entsprechend für diesen Fall den Duplex-Modus ausschalten.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Die Daten vorab in Arrays zu sammeln und "in einem Rutsch" zu drucken hätte noch den Vorteil bei sehr vielen Treffern eine Sicherungsabfrage einzubauen ...
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Frage zu SetDuplexMode
siehe dir mal das Beispiel zu XbpPrinter() im Xbase++ Help File an.mini990 hat geschrieben:Das Blatt wird auch bei einem einseitigen Druckauftrag nochmal eingezogen.
Kann man das abstellen?
ein Drucker behält nun seine (Vor-) Einstellung so lange bis er "gelöscht" ( oDC:destroy() ) wird.
XbpPrinter(), XbpFont() und XbpBitmap() Objecte sollte man IMHO immer explizit löschen um keine "Memory" Leaks zu produzieren
du machst einen Denkfehler da dir der "Presentation-Space" nicht klar ist.mini990 hat geschrieben:Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
Code: Alles auswählen
FUNCTION PrinterPS( cPrinterObjectName )
LOCAL oPS, oDC := XbpPrinter():New()
...
oPS := XbpPresSpace():New()
oPS:Create( oDC, aSize, GRA_PU_LOMETRIC )
RETURN oPS
FUNCTION Drucke()
oPS := PrinterPS()
oPS:device():startDoc()
...
GRA*(oPS, ... )
...
oPS:device():endDoc()
wie du im Beispiel c:\ALASKA\XPPW32\Source\samples\basics\Printer\PrintOut.prg im Preview siehst kannst du den Druck-Auftrag an jeden installierten Drucker schicken,
der sich dann um den Duplex-Druck kümmern muss WENN du mehr als 1 Seite im "Presentation-Space" hast.
gruss by OHR
Jimmy
Jimmy
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Jimmy, den Duplex-Modus musst du vor dem Startdoc setzen. Deshalb muss vorher die mögliche Seitenzahl>1 bestimmt werden.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Im Hinblick auf mögliche SQL Erweiterungen sollte man heute eh nicht mehr wärend dem Suchlauf direkt drucken, denn das kann man dann gleich wieder in die Tonne treten wenn man auf SQL umsteigt.
Besser ist es die Datensammlung von der Ausgabe zu trennen, und dann hat man auch keine Probleme vorher zu ermitteln wieviele Datensätze gefunden wurden.
Insbesondere spart man sich 2 Suchläufe wenn man auch noch eine Vorschau will
Als Zwischenspeicher habe ich immer 2 dimensionale Arrays verwendet, ab 2.0 kann man auch ein normales Array mit DataObjects nutzen.
Bei einer Umstellung auf SQL wird dann nur die Erstellung des Arrays anders sein oder man verwendet gleich das Resultset.
Besser ist es die Datensammlung von der Ausgabe zu trennen, und dann hat man auch keine Probleme vorher zu ermitteln wieviele Datensätze gefunden wurden.
Insbesondere spart man sich 2 Suchläufe wenn man auch noch eine Vorschau will
Als Zwischenspeicher habe ich immer 2 dimensionale Arrays verwendet, ab 2.0 kann man auch ein normales Array mit DataObjects nutzen.
Bei einer Umstellung auf SQL wird dann nur die Erstellung des Arrays anders sein oder man verwendet gleich das Resultset.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Hmm,
ich habe noch keinen Duplexdrucker gesehen, der eine Seite zweimal durchzieht, wenn der Duplexmodus eingestellt, aber nur eine (Vorder)seite zu bedrucken ist!
Was anderes ist es natürlich, wenn man am Ende der ersten Seite in dem Fall unnötigerweise eine neue Seite beginnt, um sie gleich wieder zu beenden! Dann würde aber im Nicht-Duplexmodus nach der bedruckten Seite eine leere Seite herauskommen!
Ansonsten zieht ein Duplexdrucker i.A. die Seite ein, bedruckt die Vorderseite und schmeisst sie aus - gewendet wird dann nicht.
Viele Grüße,
Martin
ich habe noch keinen Duplexdrucker gesehen, der eine Seite zweimal durchzieht, wenn der Duplexmodus eingestellt, aber nur eine (Vorder)seite zu bedrucken ist!
Was anderes ist es natürlich, wenn man am Ende der ersten Seite in dem Fall unnötigerweise eine neue Seite beginnt, um sie gleich wieder zu beenden! Dann würde aber im Nicht-Duplexmodus nach der bedruckten Seite eine leere Seite herauskommen!
Ansonsten zieht ein Duplexdrucker i.A. die Seite ein, bedruckt die Vorderseite und schmeisst sie aus - gewendet wird dann nicht.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Mein HP 8600 Bürofarbspritzer zieht das Blatt erneut ein und wendet es, auch wenn ich nur eine Seite ausdrucke (aktuelle Seite drucken) und Dublex aktiviere.
Mein Canon iP 7200 macht das nicht, er druckt nur die eine Seite und wirft dann gleich aus.
Allerdings kann auch ein Seitenvorschub zu viel eine neue Seite erzwingen:
so wird immer eine leere Seite nachgeschoben !
vor :newPage() muss man also prüfen, ob es übernaupt noch was zu drucken gibt !
PS: bei meinen früheren Laserdruckern gab es eine Option "Leere Seiten unterdrücken", die finde ich bei meinen aktuellen Geräten nicht mehr.
Mein Canon iP 7200 macht das nicht, er druckt nur die eine Seite und wirft dann gleich aus.
Allerdings kann auch ein Seitenvorschub zu viel eine neue Seite erzwingen:
Code: Alles auswählen
:newPage() --> self
// keine Druckdaten oder leere Zeilen ...
:endDoc() --> self
vor :newPage() muss man also prüfen, ob es übernaupt noch was zu drucken gibt !
PS: bei meinen früheren Laserdruckern gab es eine Option "Leere Seiten unterdrücken", die finde ich bei meinen aktuellen Geräten nicht mehr.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Mein Reden
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Frage zu SetDuplexMode
Dieses Phänomen tritt hier bei meinem HP OfficeJet 6700 auf.
Bei einem OKI B720 mit Duplexeinheit macht er es nicht.....
Lustige Welt....
Gruß Stefan
Bei einem OKI B720 mit Duplexeinheit macht er es nicht.....
Lustige Welt....
Gruß Stefan
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Wie geschrieben, auch mein HP OfficeJet PRO 8600 zieht immer ein und dreht das Blatt, sobald Dublex eingeschaltet ist.
Meiner hat einen Netzwerkanschluß und USB, beim Netzwerkzugriff legt er immer nach einer halben Seite einige Sekunden Wartezeit ein,
obwohl die Druckdaten keine Bilder enthalten und mit 100 MBit auch schnell übertragen sein müssten. Mit USB ist er sofort fertig.
Meiner hat einen Netzwerkanschluß und USB, beim Netzwerkzugriff legt er immer nach einer halben Seite einige Sekunden Wartezeit ein,
obwohl die Druckdaten keine Bilder enthalten und mit 100 MBit auch schnell übertragen sein müssten. Mit USB ist er sofort fertig.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Den Druckertreiber hat wahrscheinlich ein Erstsemester-Informatiker programmiert
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Frage zu SetDuplexMode
mein 6700 hängt auch am Netz. Geschwindigkeitsprobleme treten hier jedoch auch bei
großen Dateien bzw. Bildern nicht auf.....
Gruß Stefan
großen Dateien bzw. Bildern nicht auf.....
Gruß Stefan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Ich meine, mich an einen Duplexdrucker zu erinnern, der zuerst immer die Rückseite gedruckt hat. War ein Kyocera oder so. Selbst im Simplex-Modus hat er die Seite zweimal eingezogen.
Herzlich,
Tom
Tom
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Tja, bei allen 3 Monaten ein neues Druckermodel bleibt wenig Zeit, vernünftige Druckertreiber zu entwickeln...
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Frage zu SetDuplexMode
Das ist natürlich auch eine Frage der Sortierung, wenn man 3 Seiten auf Dublex druckt und die letzte wird nicht wieder eingezogen,
dann würde die in der falschen Richtung auf dem Stapel liegen. Das wäre uns dann ja auch nicht Recht
dann würde die in der falschen Richtung auf dem Stapel liegen. Das wäre uns dann ja auch nicht Recht
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Frage zu SetDuplexMode
wieso ?Herbert hat geschrieben:Jimmy, den Duplex-Modus musst du vor dem Startdoc setzen.
Deshalb muss vorher die mögliche Seitenzahl>1 bestimmt werden.
ich kann doch VOR dem o:Startdoc meinen Presspace füllen z.b. für ein Preview und durch die Druckerauswahl
jederzeit den Device-Context wechseln und dann den evtl. Duplex-Modus berücksichtigen.
gruss by OHR
Jimmy
Jimmy