Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Frage zu SetDuplexMode

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 330
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Frage zu SetDuplexMode

Beitrag von mini990 » Mo, 19. Jan 2015 10:28

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

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Mo, 19. Jan 2015 11:19

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.
Gruß
Hubert

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1829
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Herbert » Mo, 19. Jan 2015 12:04

mini990 hat geschrieben:Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
Ich würde nicht ein zweimaliges Durchlaufen des Erstellens vornehmen.
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...

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Mo, 19. Jan 2015 12:12

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10654
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Frage zu SetDuplexMode

Beitrag von AUGE_OHR » Mo, 19. Jan 2015 21:17

mini990 hat geschrieben:Das Blatt wird auch bei einem einseitigen Druckauftrag nochmal eingezogen.
Kann man das abstellen?
siehe dir mal das Beispiel zu XbpPrinter() im Xbase++ Help File an.

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
mini990 hat geschrieben:Problem: Ich weiß vor Startdoc() nicht wie viele Seiten das Dokument haben wird.
du machst einen Denkfehler da dir der "Presentation-Space" nicht klar ist.

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()
alles was du mit GRA* Function "malst" passiert ja im oPS "Presentation-Space". der Drucker ist lediglich ein möglicher "Device-Context" für eine Ausgabe.

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

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1829
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Herbert » Di, 20. Jan 2015 7:44

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...

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Di, 20. Jan 2015 8:34

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.
Gruß
Hubert

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13749
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Martin Altmann » Di, 20. Jan 2015 8:42

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
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Di, 20. Jan 2015 9:09

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:

Code: Alles auswählen

:newPage() --> self
// keine Druckdaten oder leere Zeilen ...
:endDoc() --> self
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.
Gruß
Hubert

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13749
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Martin Altmann » Di, 20. Jan 2015 9:11

Mein Reden :!:
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 330
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Re: Frage zu SetDuplexMode

Beitrag von mini990 » Di, 20. Jan 2015 10:24

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

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Di, 20. Jan 2015 10:32

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.
Gruß
Hubert

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13749
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Martin Altmann » Di, 20. Jan 2015 11:00

Den Druckertreiber hat wahrscheinlich ein Erstsemester-Informatiker programmiert :badgrin:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 330
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Re: Frage zu SetDuplexMode

Beitrag von mini990 » Di, 20. Jan 2015 13:15

mein 6700 hängt auch am Netz. Geschwindigkeitsprobleme treten hier jedoch auch bei
großen Dateien bzw. Bildern nicht auf.....

Gruß Stefan

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6828
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Tom » Di, 20. Jan 2015 14:38

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 :wink: hat er die Seite zweimal eingezogen.
Herzlich,
Tom

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von Wolfgang Ciriack » Di, 20. Jan 2015 15:14

Tja, bei allen 3 Monaten ein neues Druckermodel bleibt wenig Zeit, vernünftige Druckertreiber zu entwickeln...
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Frage zu SetDuplexMode

Beitrag von brandelh » Di, 20. Jan 2015 16:13

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 ;-)
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10654
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Frage zu SetDuplexMode

Beitrag von AUGE_OHR » Mi, 21. Jan 2015 12:03

Herbert hat geschrieben:Jimmy, den Duplex-Modus musst du vor dem Startdoc setzen.
Deshalb muss vorher die mögliche Seitenzahl>1 bestimmt werden.
wieso ?

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

Antworten