private void printPreviewButton_Click(object sender, EventArgs e)
        {
            PreparePrinting();

            // show new PrintPreviewDialog
            printDocument.Print(printDialog, true, true, new InsetsD(50), PrintDialogTitle);
        }
예제 #2
0
        private void printButton_Click(object sender, EventArgs e)
        {
            GraphControl control = graphControl;
            // check if the rectangular region or the whole viewport should be printed
            bool  useRect = (bool)handler.GetValue(OUTPUT, EXPORT_RECTANGLE);
            RectD bounds  = useRect ? exportRect.ToRectD() : control.Viewport;

            // check whether decorations (selection, handles, ...) should be hidden
            bool hide = (bool)handler.GetValue(OUTPUT, HIDE_DECORATIONS);

            if (hide)
            {
                // if so, create a new graphcontrol with the same graph
                control = new GraphControl {
                    Graph = graphControl.Graph, Projection = graphControl.Projection
                };
            }

            // read CanvasPrintDocument options
            printDocument.Scale              = (double)Handler.GetValue(DOCUMENT_SETTINGS, SCALE);
            printDocument.CenterContent      = (bool)Handler.GetValue(DOCUMENT_SETTINGS, CENTER_CONTENT);
            printDocument.PageMarkPrinting   = (bool)Handler.GetValue(DOCUMENT_SETTINGS, PAGE_MARK_PRINTING);
            printDocument.ScaleDownToFitPage = (bool)Handler.GetValue(DOCUMENT_SETTINGS, SCALE_DOWN_TO_FIT_PAGE);
            printDocument.ScaleUpToFitPage   = (bool)Handler.GetValue(DOCUMENT_SETTINGS, SCALE_UP_TO_FIT_PAGE);
            // set GraphControl
            printDocument.Canvas = control;
            // set print area
            printDocument.PrintRectangle = bounds;
            printDocument.Projection     = graphControl.Projection;

            // show new PrintPreviewDialog
            PrintPreviewDialog dialog = new PrintPreviewDialog {
                Document = printDocument
            };
            DialogResult result = dialog.ShowDialog(this);

            if (result == DialogResult.Cancel || result == DialogResult.Abort || result == DialogResult.No)
            {
                return;
            }
            // print
            printDocument.Print();
        }