Ejemplo n.º 1
0
 /// <summary>
 /// Exports scheme image to Excel 2007+ (.xlsx).
 /// </summary>
 /// <param name="image">Scheme image.</param>
 /// <param name="fileName">Target file name.</param>
 /// <param name="gridPainter">Grid painter with current paint options.</param>
 /// <param name="orderedColors">List of colors in current order.</param>
 public static void ExportToExcel(CodedImage image, string fileName, PatternGridPainter gridPainter, IList <CodedColor> orderedColors)
 {
     using (var document = new SpreadsheetDocument(fileName))
     {
         CreateSchemeSheet(image, document, gridPainter);
         CreatePaletteSheet(image, orderedColors, document, gridPainter);
     }
 }
 public VisualPrintPreviewController(IImageProvider imageProvider, PatternGridPainter gridPainter, IList <CodedColor> orderedColors, Size imageBoxSize = default(Size))
     : base(imageProvider, imageBoxSize)
 {
     GridPainter   = gridPainter;
     OrderedColors = orderedColors ?? SourceImage.Palette.OrderByDarknes().Cast <CodedColor>().ToList();
 }
Ejemplo n.º 3
0
        static Style GetVerticalRulerCellStyle(Stylesheet stylesheet, CodedImage image, int y, PatternGridPainter gridPainter)
        {
            var style = new Style();

            style.Alignment = new Alignment {
                HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Middle, WrapText = false
            };
            style.Font = new Font {
                Size = 10, Color = GridPainterSettings.Default.NumbersArgb
            };

            style.Borders = new Borders();

            style.Borders.Top.BorderStyle = GetBorderStyle(y, image.Size.Height);
            style.Borders.Top.Color       = GetBorderColor(y, image.Size.Height);

            style.Borders.Bottom.BorderStyle = GetBorderStyle(y + 1, image.Size.Height);
            style.Borders.Bottom.Color       = GetBorderColor(y + 1, image.Size.Height);

            style.Borders.Left.BorderStyle = BorderStyles.None;

            style.Borders.Right.BorderStyle = BorderStyles.Medium;
            style.Borders.Right.Color       = GridPainterSettings.Default.Line10Argb;

            style.Borders.Diagonal.BorderStyle = BorderStyles.None;

            return(stylesheet.AddStyle(style));
        }
Ejemplo n.º 4
0
        static void CreateVerticalRuler(CodedImage image, SpreadsheetDocument document, Worksheet sheet, PatternGridPainter gridPainter, int startRow, int startCol)
        {
            sheet.SetColumnWidth(startCol, 6);

            for (int y = 0; y < image.Size.Height; y++)
            {
                var cell = sheet.Cells[y + startRow, startCol];
                cell.Style      = GetVerticalRulerCellStyle(document.Stylesheet, image, y, gridPainter);
                cell.Value      = y + 1;
                cell.Row.Height = 14;
            }
        }
Ejemplo n.º 5
0
        static void CreateHorizontalRuler(CodedImage image, SpreadsheetDocument document, Worksheet sheet, PatternGridPainter gridPainter, int startRow, int startCol)
        {
            for (int x = 0; x < image.Size.Width; x++)
            {
                sheet.SetColumnWidth(x + startCol, 3);
                var cell = sheet.Cells[startRow, x + startCol];
                cell.Style = GetHorizontalRulerCellStyle(document.Stylesheet, image, x, gridPainter);
                cell.Value = x + 1;
            }

            sheet.Cells[startRow, startCol].Value      = " ";
            sheet.Cells[startRow, startCol].Row.Height = 28;
        }
Ejemplo n.º 6
0
        static void CreateSchemeSheet(CodedImage image, SpreadsheetDocument document, PatternGridPainter gridPainter)
        {
            var sheet = document.Worksheets.Add(Resources.ExcelSheetScheme);

            CreateHorizontalRuler(image, document, sheet, gridPainter, 1, 2);
            CreateVerticalRuler(image, document, sheet, gridPainter, 2, 1);
            FillScheme(image, document, sheet, gridPainter, 2, 2);
        }
Ejemplo n.º 7
0
        static void FillPaletteLine(CodedColor color, int index, Worksheet sheet, Stylesheet stylesheet, PatternGridPainter gridPainter, int row, int startCol)
        {
            var textStyle = new Style();

            textStyle.Borders = new Borders();
            textStyle.Borders.Top.BorderStyle = BorderStyles.Thin;
            textStyle.Borders.Top.Color       = GridPainterSettings.Default.Line10Argb;
            textStyle = stylesheet.AddStyle(textStyle);

            var symbolStyle = new Style();

            symbolStyle.Borders = new Borders();
            symbolStyle.Borders.Top.BorderStyle = BorderStyles.Thin;
            symbolStyle.Borders.Top.Color       = GridPainterSettings.Default.Line10Argb;
            symbolStyle.Font = new Font {
                Name = gridPainter.SymbolsFont.Name
            };
            symbolStyle = stylesheet.AddStyle(symbolStyle);

            var colorStyle = new Style();

            colorStyle.Borders = new Borders();
            colorStyle.Borders.Top.BorderStyle = BorderStyles.Thin;
            colorStyle.Borders.Top.Color       = GridPainterSettings.Default.Line10Argb;
            colorStyle.Fill = new Fill(GdiColor.FromArgb(color.Argb));
            colorStyle      = stylesheet.AddStyle(colorStyle);

            SetColorLineCell(index.ToString(), textStyle, sheet, row, startCol);
            SetColorLineCell(color.SymbolChar.ToString(), symbolStyle, sheet, row, startCol + 1);
            SetColorLineCell(color.ColorCode, textStyle, sheet, row, startCol + 2);
            SetColorLineCell(" ", colorStyle, sheet, row, startCol + 3);
            SetColorLineCell(color.ColorName, textStyle, sheet, row, startCol + 4);
            SetColorLineCell(color.OccurrencesCount.ToString(), textStyle, sheet, row, startCol + 5);
        }
Ejemplo n.º 8
0
        static void CreatePaletteSheet(CodedImage image, IList <CodedColor> orderedColors, SpreadsheetDocument document, PatternGridPainter gridPainter)
        {
            var sheet = document.Worksheets.Add(Resources.ExcelSheetPalette);

            sheet.Cells[1, 1].Value = image.Palette.Name;

            CreateColorsListHeader(sheet, document.Stylesheet, 3, 1);

            int index = 0;

            foreach (var color in orderedColors)
            {
                index++;
                FillPaletteLine(color, index, sheet, document.Stylesheet, gridPainter, index + 3, 1);
            }
        }
Ejemplo n.º 9
0
        static Style GetCrossCellStyle(Stylesheet stylesheet, CodedImage image, int x, int y, PatternGridPainter gridPainter)
        {
            var codedColor = image[x, y];

            var style = new Style();

            //style.NumberFormat = new NumberFormat("");
            style.Alignment = new Alignment {
                HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Middle, WrapText = false
            };
            style.Fill = new Fill {
                Color = GdiColor.FromArgb(gridPainter.GetBackColorArgb(codedColor))
            };
            style.Font = new Font {
                Name = gridPainter.SymbolsFont.Name, Size = 10, Color = GdiColor.FromArgb(gridPainter.GetSymbolColorArgb(codedColor))
            };

            style.Borders = new Borders();

            style.Borders.Top.BorderStyle = GetBorderStyle(y, image.Size.Height);
            style.Borders.Top.Color       = GetBorderColor(y, image.Size.Height);

            style.Borders.Bottom.BorderStyle = GetBorderStyle(y + 1, image.Size.Height);
            style.Borders.Bottom.Color       = GetBorderColor(y + 1, image.Size.Height);

            style.Borders.Left.BorderStyle = GetBorderStyle(x, image.Size.Width);
            style.Borders.Left.Color       = GetBorderColor(x, image.Size.Width);

            style.Borders.Right.BorderStyle = GetBorderStyle(x + 1, image.Size.Width);
            style.Borders.Right.Color       = GetBorderColor(x + 1, image.Size.Width);

            style.Borders.Diagonal.BorderStyle = BorderStyles.None;

            return(stylesheet.AddStyle(style));
        }
Ejemplo n.º 10
0
 static void FillScheme(CodedImage image, SpreadsheetDocument document, Worksheet sheet, PatternGridPainter gridPainter, int startRow, int startCol)
 {
     for (int x = 0; x < image.Size.Width; x++)
     {
         for (int y = 0; y < image.Size.Height; y++)
         {
             var cell = sheet.Cells[y + startRow, x + startCol];
             cell.Style = GetCrossCellStyle(document.Stylesheet, image, x, y, gridPainter);
             cell.Value = image[x, y].SymbolChar.ToString();
         }
     }
 }