Laden...

Drucker ignoriert Landscape und PageSize

Erstellt von S.R. vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.523 Views
S
S.R. Themenstarter:in
221 Beiträge seit 2007
vor 11 Jahren
Drucker ignoriert Landscape und PageSize

Hallo,

ich habe hier einen Broterh QL-720NW Label Printer mit dem mein erster Druck-Versuch problemlos geklappt hat.

  1. Unter Windows in den Drucker-Einstellungen ist der Drucker im Modus "Hochformat" konfiguiert - entsprechend kommt auch die Seite raus. Ändere ich diese Drucker-Einstellung auf "Querformat" dann druckt er auch im Querformat korrekt. Die Eigenschaft

PrintDocument pd = new PrintDocument();
pd.PrinterSettings.DefaultPageSettings.Landscape

wird in C-Sharp auch korrekt ausgegeben. Nun möchte ich aber die Ausrichtung in meinem Programm steuern. Unter Windows ist der Drucker als Hochformat eingestellt, daher ergibt Landscape = false. Nun ändere ich den Wert auf true und trotzdem wird die Seite im Hochformat ausgedruck.


PrintDocument pd = new PrintDocument();
pd.PrintPage += printDocument1_PrintPage;
pd.PrinterSettings.DefaultPageSettings.Landscape = true;
pd.Print();

        private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {
            Graphics g = e.Graphics;
            g.PageUnit = GraphicsUnit.Millimeter;
            Pen pen = new Pen(Brushes.Black);
            pen.Width = 1;
            g.DrawRectangle(pen, 0, 0, 10, 10);
        }

Was mache ich falsch?

  1. In dem Drucker ist ein 62mm breites Endlospapier eingelegt. Die Standardwerte

(pd.PrinterSettings.DefaultPageSettings.PaperSize.Height * 0.254).ToString() // = 89,916 mm
(pd.PrinterSettings.DefaultPageSettings.PaperSize.Width * 0.254).ToString() // = 61,976 mm

stehen unter den Windows-Drucker-Einstellungen auch:
Papierformat: 62mm
Länge: 89,8mm
oberer Rand: 3,0mm

Entsprechend stimmen auch die Werte für pd.PrinterSettings.DefaultPageSettings.PrintableArea.Left.

Nun möchte ich die Länge (Height) des Papiers beeinflussen. Dafür habe ich folgenden Code hinzugefügt:

pd.PrinterSettings.DefaultPageSettings.PaperSize = new PaperSize("Custom", (int) (62/0.254), (int) (150 / 0.254));

Dem Drucker scheint auch dies egal - das Papier wird nach 9cm abgeschnitten und nicht nach 15cm. Interessant ist, dass die Option

pd.PrinterSettings.DefaultPageSettings.PrintableArea.Bottom

trotzdem die Ausgabe 86,952mm hat. Die Seite sollte wg. der geänderten PaperSize ja höher sein und somit sollte auch die PrintableArea länger sein, also irgendwas bei 136mm.

Hat jemand n' Idee, wie ich den Drucker dazu motiviert bekomme entsprechend meinen Wünschen zu Drucken. Bin für jeden Tipp dankbar!!!

Gruß

Stefan