3 Stimmen

Wie kann ich die Druckqualität verbessern, wenn ich Win Form in C# drucke?

Ich versuche, mein Formular mit GDI zu drucken, aber wenn ich es drucken, die Qualität des Drucks ist nicht so gut (donknow, ob Bild immer aliased?), Formulargröße ist 700x700, auch gibt es einen Parameter, der dint verstanden -Raster op-Code-, hier ist Code bin mit...

  private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
    {
        Graphics g1 = this.CreateGraphics();
        System.Drawing.Image MyImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, g1);
        Graphics g2 = Graphics.FromImage(MyImage);
        IntPtr dc1 = g1.GetHdc();
        IntPtr dc2 = g2.GetHdc();
        BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
        g1.ReleaseHdc(dc1);
        g2.ReleaseHdc(dc2);
        Bitmap bmp = new Bitmap(MyImage);

        int x = e.MarginBounds.X;
        int y = e.MarginBounds.Y;
        int width = bmp.Width;
        int height = bmp.Height;
        if ((width / e.MarginBounds.Width) > (height / e.MarginBounds.Height))
        {
            width = e.MarginBounds.Width;
            height = bmp.Height * e.MarginBounds.Width / bmp.Width;
        }
        else
        {
            height = e.MarginBounds.Height;
            width = bmp.Width * e.MarginBounds.Height / bmp.Height;
        }
        System.Drawing.Rectangle destRect = new System.Drawing.Rectangle(x, y, width, height);
        e.Graphics.DrawImage(bmp, destRect, 0, 0, bmp.Width, bmp.Height, System.Drawing.GraphicsUnit.Pixel);
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X