public void Print(bool preview) { if (curr == null) { return; } curr.DoOperation(GUI.View.EditOperation.SelectNone); PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); pd.DefaultPageSettings.Landscape = true; pd.DocumentName = curr.name; pd.DefaultPageSettings.Margins = new Margins(25, 25, 25, 25); pages_printed = 0; PrintDialog d = new PrintDialog(); d.Document = pd; DialogResult res = d.ShowDialog(); if (res != DialogResult.OK) { return; } pd.PrinterSettings = d.PrinterSettings; if (preview) { PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.Document = pd; ppd.ShowDialog(); } else { pd.Print(); } pd.Dispose(); }