2008-08-26 11 views
9

Ich versuche Mono zu verwenden, um ein Bitmap zu laden und es unter Linux zu drucken, aber ich bekomme eine Ausnahme. Unterstützt Mono das Drucken unter Linux? Der Code/Ausnahme sind unten:Unterstützt Mono System.Drawing und System.Drawing.Printing?

EDIT: Nicht mehr die Ausnahme, aber ich bin immer noch neugierig, welche Art von Unterstützung gibt es. Den Code für die Nachwelt hinterlassen oder so etwas.

private void btnPrintTest_Click(object sender, EventArgs e) 
{ 
    _printDocTest.DefaultPageSettings.Landscape = true; 
    _printDocTest.DefaultPageSettings.Margins = new Margins(50,50,50,50); 
    _printDocTest.Print(); 
} 

void _printDocTest_PrintPage(object sender, PrintPageEventArgs e) 
{ 
    var bmp = new Bitmap("test.bmp"); 

    // Determine center of graph 
    var xCenter = e.MarginBounds.X + (e.MarginBounds.Width - bmp.Width)/2; 
    var yCenter = e.MarginBounds.Y + (e.MarginBounds.Height - bmp.Height)/2; 

    e.Graphics.DrawImage(bmp, xCenter, yCenter); 

    e.HasMorePages = false; 
} 
+1

Oh, oops, sieht aus wie ich nur den Dateipfad falsch angegeben (geändert, um die Datei zuerst zu öffnen, dann laden Sie es in eine Bitmap). Habe es jetzt funktioniert - nichts zu sehen hier, geh weiter. – Luke

Antwort

6

Vom Mono docs, ich denke ja:

Managed.Windows.Forms (aka System.Windows.Forms): Eine vollständige und Cross-Plattform, basierend System.Drawing WinForms Implementierung .

Es ist auch nützlich, wenn Sie zuerst die Mono Migration Analyzer ausführen.

5

According to

System.Drawing ist nun abgeschlossen, und zusätzlich die zugrunde liegenden Rendering-Engine für Windows.Forms zu sein, hat es sich auch für die Verwendung von Dritten Kontrollen getestet worden, die auf sie stark ab.