Beispiel #1
0
        public C1.C1Preview.C1PrintDocument MakeDoc(C1.Win.C1FlexGrid.C1FlexGridPrintInfo printInfo, C1.C1Preview.LongOperationEventHandler longOperation)
        {
            MarkPageBreaks();

            C1.C1Preview.C1PrintDocument doc = new C1.C1Preview.C1PrintDocument();

            C1.C1Preview.RenderText hdrFlex = new C1.C1Preview.RenderText("Header for Flex");
            hdrFlex.Style.FontSize       = 12;
            hdrFlex.Style.FontBold       = true;
            hdrFlex.Style.Spacing.Bottom = "2mm";
            doc.Body.Children.Add(hdrFlex);

            C1.Win.C1FlexGrid.C1FlexGridPrinter pFlex = new C1.Win.C1FlexGrid.C1FlexGridPrinter(_flex);
            pFlex.LongOperation += longOperation;
            pFlex.PrintInfo      = printInfo;
            doc.Body.Children.Add(pFlex.MakeGridTable(doc));

            C1.C1Preview.RenderText hdrFlex2 = new C1.C1Preview.RenderText("Header for Flex 2");
            hdrFlex2.Style.FontSize       = 12;
            hdrFlex2.Style.FontBold       = true;
            hdrFlex2.Style.Spacing.Bottom = "2mm";
            hdrFlex2.BreakBefore          = C1.C1Preview.BreakEnum.Page;
            doc.Body.Children.Add(hdrFlex2);

            C1.Win.C1FlexGrid.C1FlexGridPrinter pFlex2 = new C1.Win.C1FlexGrid.C1FlexGridPrinter(_flex2);
            pFlex2.LongOperation += longOperation;
            pFlex2.PrintInfo      = printInfo;
            doc.Body.Children.Add(pFlex2.MakeGridTable(doc));

            return(doc);
        }
Beispiel #2
0
        private void btnPreviewSample_Click(object sender, EventArgs e)
        {
            C1.C1Preview.C1PrintDocument doc = null;
            if (_selectedWrapper != null)
            {
                doc = _selectedWrapper.MakeDoc(_printInfo, printer_LongOperation);
                if (doc == null)
                {
                    C1FlexGrid flex = _selectedWrapper.Flex;
                    if (flex != null)
                    {
                        C1.Win.C1FlexGrid.C1FlexGridPrinter printer = new C1.Win.C1FlexGrid.C1FlexGridPrinter(flex);
                        printer.LongOperation += new C1.C1Preview.LongOperationEventHandler(printer_LongOperation);

                        doc = new C1.C1Preview.C1PrintDocument();
                        printer.PrintInfo = _printInfo;
                        C1.C1Preview.RenderObject gridRO = printer.MakeGridTable(doc);
                        // if flex grid borders are not printed, provide our own:
                        if (!_printInfo.PrintBorders && chkOverrideBorders.Checked)
                        {
                            gridRO.Style.GridLines.All = new C1.C1Preview.LineDef("0.5pt", Color.LightGray);
                        }
                        doc.Body.Children.Add(gridRO);
                        doc.PageLayout.PageHeader = printer.MakePageHeader(doc);
                        doc.PageLayout.PageFooter = printer.MakePageFooter(doc);
                    }
                }
            }

            if (doc != null)
            {
                doc.PageLayout.PageSettings.Landscape = chkLandscape.Checked;
                C1.Win.C1Preview.C1PrintPreviewDialog pview = new C1.Win.C1Preview.C1PrintPreviewDialog();
                // Assign document after showing the dialog - this delays generation
                // and improves user experience for long documents:
                // pview.Document = doc;
                pview.Shown += (o, ev) => { pview.Document = doc; };
                pview.ShowDialog();
                progressBar1.Value = 0;
                label2.Text        = string.Format((string)label2.Tag, 0);
            }
            else
            {
                MessageBox.Show("Could not load the selected sample.");
            }
        }
Beispiel #3
0
        // we must provide a MakeDoc implementation because
        // square brackets used in this sample grid's texts
        // are interpreted as expression parentheses otherwise.
        public C1.C1Preview.C1PrintDocument MakeDoc(C1FlexGridPrintInfo printInfo, C1.C1Preview.LongOperationEventHandler longOperation)
        {
            bool customBorders = _flex.DrawMode == DrawModeEnum.OwnerDraw;

            C1.C1Preview.C1PrintDocument doc = new C1.C1Preview.C1PrintDocument();
            doc.TagOpenParen  = "@@@[";
            doc.TagCloseParen = "@@@]";
            C1.Win.C1FlexGrid.C1FlexGridPrinter printer = new C1.Win.C1FlexGrid.C1FlexGridPrinter(_flex);
            printer.LongOperation += longOperation;
            printer.PrintInfo      = printInfo;
            // the best way to draw custom borders around the resulting table's cells is
            // to do it explicitly against the C1PrintDocument object model, hence this:
            printer.PrintInfo.PrintBorders = !customBorders;
            C1.C1Preview.RenderTable rtbl = printer.MakeGridTable(doc);
            if (customBorders)
            {
                // to draw custom borders, change them on the table returned:
                C1.C1Preview.LineDef lineBlack = new C1.C1Preview.LineDef("1pt", Color.Black);
                C1.C1Preview.LineDef lineGray  = new C1.C1Preview.LineDef("1pt", Color.LightGray);
                C1.C1Preview.LineDef lineGreen = new C1.C1Preview.LineDef("2pt", Color.Green);
                //
                rtbl.Style.GridLines.Left   = lineBlack;
                rtbl.Style.GridLines.Top    = lineBlack;
                rtbl.Style.GridLines.Right  = lineBlack;
                rtbl.Style.GridLines.Bottom = lineBlack;
                rtbl.Style.GridLines.Vert   = lineGray;
                rtbl.Style.GridLines.Horz   = lineGray;
                // "company" cell:
                rtbl.Cells[0, 1].Style.Borders.All = lineGreen;
                // "sales" group:
                rtbl.UserCellGroups.Add(new C1.C1Preview.UserCellGroup(new Rectangle(2, 0, 4, 2)));
                rtbl.UserCellGroups[0].Style.Borders.All = lineGreen;
                // "purchases" group:
                rtbl.UserCellGroups.Add(new C1.C1Preview.UserCellGroup(new Rectangle(6, 0, 4, 2)));
                rtbl.UserCellGroups[1].Style.Borders.All = lineGreen;
            }
            doc.Body.Children.Add(rtbl);
            doc.PageLayout.PageHeader = printer.MakePageHeader(doc);
            doc.PageLayout.PageFooter = printer.MakePageFooter(doc);
            return(doc);
        }
Beispiel #4
0
        public C1.C1Preview.C1PrintDocument MakeDoc(C1.Win.C1FlexGrid.C1FlexGridPrintInfo printInfo)
        {
            C1FlexGrid flex = _tab.SelectedTab.Controls[0] as C1FlexGrid;

            if (flex == null)
            {
                return(null);
            }

            C1.Win.C1FlexGrid.C1FlexGridPrinter printer = new C1.Win.C1FlexGrid.C1FlexGridPrinter(flex);
            C1.C1Preview.C1PrintDocument        doc     = new C1.C1Preview.C1PrintDocument();
            printer.PrintInfo = printInfo;
            C1.C1Preview.RenderObject gridRO = printer.MakeGridTable(doc);
            // if flex grid borders are not printed, provide our own:
            if (!printInfo.PrintBorders)
            {
                gridRO.Style.GridLines.All = new C1.C1Preview.LineDef("0.5pt", Color.LightGray);
            }
            doc.Body.Children.Add(gridRO);
            doc.PageLayout.PageHeader = printer.MakePageHeader(doc);
            doc.PageLayout.PageFooter = printer.MakePageFooter(doc);
            return(doc);
        }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance of <see cref="C1FlexGridPrintable2"/> class.
 /// </summary>
 public C1FlexGridPrintable2()
     : base()
 {
     _printer = null;
 }
Beispiel #6
0
 private void button1_Click(object sender, EventArgs e)
 {
     C1.Win.C1FlexGrid.C1FlexGridPrinter printer = new C1.Win.C1FlexGrid.C1FlexGridPrinter(c1FlexGridPrintable2);
     printer.PrintPreview();
 }