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


  • Mod

    Hallo

    das sollte dann ueber den Druckertreiber funktionieren

    MfG
    Klaus



  • @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>


Anmelden zum Antworten