Announcement

Collapse
No announcement yet.

Funktioniert Printer.Copies nur beim Standartdrucker?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Funktioniert Printer.Copies nur beim Standartdrucker?

    Anscheinend funktioniert die <b>Printer.Copies</b>-Eigenschaft nicht, wenn man den ausgewählten Drucker über <b>Printer.PrinterIndex</b> verstellt.<p>
    Beispiel:<br>
    <pre>
    Printer.PrinterIndex := 0; // Drucker-Index verstellen
    Printer.Copies := 2; // 2 Kopien drucken
    Printer.BeginDoc;
    Printer.Canvas.TextOut(30, 30, 'Test am ' + DateTimeToStr(Now));
    Printer.EndDoc;
    </pre>
    <p>
    Das Programm müsste eigentlich zwei Seiten drucken, druckt aber nur eine, da in der ersten Zeile der Drucker umgestellt wurde.<p>
    Hat jemand eine Idee wie man diesen Bug umgehen könnte (vielleicht eine API-Routine...?)?
    <p>
    Wäre für Hinweise sehr dankbar,<br>
    Gruß,<br>
    Bernhard

  • #2
    Hallo,

    mit Delphi 5 UpdatePack#1 und NT 4 SP5 kann ich den geschilderten Effekt auf einem HL-1260 nicht reproduzieren. Der folgende Aufruf druckt 2 Exemplare auf dem ausgewählten Drucker (im TreeView muss dazu ein vorhandener Drucker ausgewählt werden):
    <pre>
    procedure TForm1.Button3Click(Sender: TObject);
    var
    iPrtID : Integer;
    begin
    iPrtID := Integer(TreeView1.Selected.Parent.Data);
    Printer.PrinterIndex := iPrtID;
    Printer.Copies := 2; // 2 Kopien drucken
    Printer.BeginDoc;
    Printer.Canvas.TextOut(30, 30, 'Test am ' + DateTimeToStr(Now));
    Printer.EndDoc;
    end;
    </pre&gt

    Comment


    • #3
      Danke!<p>
      Inzwischen bin ich nämlich draufgekommen, dass das Problem nur bei einen ganz bestimmten exotischen 16-Bit-Druckertreiber aufrtitt. Ich stelle jetzt einfach den Standart-Drucker im Programm temporär auf diesen Druckertreiber um, damit funktioniert auch die Copies-Eigenschaft wieder...<p>
      Danke,<p>
      Bernhar

      Comment

      Working...
      X