Duplexdruck mit BCB möglich?
-
Hallo,
ich muss jeweils die Vor- und Rückseite eines Blattes bedrucken. Ich bedrucke eine Seite, wende das Blatt, lege es umgedreht in den Papierschacht und drucke die zweite Seite.
Nun überlege ich, eine Duplexeinheit zu kaufen, damit automatisch beide Seiten bedruckt werden.
Weiß jemand, ob das überhaupt möglich ist? Kann ich irgendwo nachschlagen, wie das programmiert wird?
Bin für JEDEN Hinweis dankbar!!!SG
-
Hallo
das sollte dann ueber den Druckertreiber funktionieren
MfG
Klaus
-
Ok, du hast einen Druckertreiber, der das kann. Man kann den Duplexdruck für DIN-A4- und DIN-A3-Papier (Hoch- und Querformat) einstellen.
Aus dem Builder heraus drucke ich, indem ich den Druckvorgang mit
Printer() -> BeginDoc();
starte und mit
Printer() -> EndDoc();
beende.
Doch wie sagt man dem Druckertreiber, dass zwei Seiten, die bisher nacheinander gedruckt wurden, jetzt auf Vor- und Rückseite desselben Blattes erscheinen sollen?
In Delphi habe ich dem Drucker z. B. folgendermaßen beigebracht, ob er auf DIN-A4 oder DIN-A3 drucken soll:
//DIN-A4- oder DIN-A3-Papierformat festlegen Printer.GetPrinter(device,driver,port,hdmode); if hdmode<>0 then begin pdmode:=GlobalLock(hdmode); if pdmode<>nil then begin pdmode^.dmFields:=pdmode^.dmFields or dm_PaperSize; if Unit1.a3 then pdmode^.dmPaperSize:=DMPAPER_A3; //Papier hat jetzt Größe DIN-A3 end else pdmode^.dmPaperSize:=DMPAPER_A4; //Papier hat jetzt Größe DIN-A4 end; GlobalUnlock(hdmode); end; end;
Wie würde der Zugriff beim Builder für Duplexdrucke aussehen?
Danke für ne Antwort!!!
-
Genau wie die Papiergrösse setzt du auch die Duplex-Eigenschaften. Auszug aus wingdi.h:
/* duplex enable */ #define DMDUP_SIMPLEX 1 #define DMDUP_VERTICAL 2 #define DMDUP_HORIZONTAL 3
-
Wobei in der MSDN steht, das GlobalLock und GlobalUnlock nur noch aus Kompatibilitätsgründen zu Win16 Programmen dabei sind. Es gibt aber noch SetPrinter. In der MSDN gibt ein hübsch grosses Kapitel zu den Printerfunktionen.
Bei SetPrinter stehen die gewünschten Informationen (Duplexdruck) in PRINTER_INFO_2 und dort in pDevMode.
-
Danke, ich mach mich mal schlau!
-
<Edit: Doppelposting>