示例#1
0
        public FormatStrony UstalFormatStrony(IWymiarowalny strona)
        {
            var          szerokość          = strona.Szerokość.Mm;
            var          wysokość           = strona.Wysokość.Mm;
            var          formatA4           = StandardoweFormaty.Szukaj("A4");
            var          powierzchniaA4     = formatA4.Szerokość.Pixels * formatA4.Wysokość.Pixels;
            var          powierzchniaStrony = strona.Szerokość.Pixels * strona.Wysokość.Pixels;
            var          stronyA4           = (double)powierzchniaStrony / (double)powierzchniaA4;
            var          formatyRosnąco     = _formaty.OrderBy(f => f.StronyA4);
            FormatStrony wybranyFormat      = null;

            foreach (var format in formatyRosnąco)
            {
                if (stronyA4 > format.StronyA4)
                {
                    continue;
                }
                wybranyFormat = format;
                break; //wybieramy ten format
            }
            if (wybranyFormat == null)
            {
                wybranyFormat = formatyRosnąco.Last();
            }
            return(new FormatStrony
            {
                Nazwa = wybranyFormat.Nazwa,
                StronyA4 = stronyA4
            });
        }
        public FormatStrony UstalFormatStrony(IWymiarowalny strona)
        {
            if (strona == null)
            {
                throw new ArgumentNullException("strona != null");
            }
            if (!_formaty.Any())
            {
                throw new InvalidOperationException("Brak zdefiniowanych formatów z którymi można dokonać porównania");
            }
            var najbliższyFormat     = _formaty.First();
            var najmniejszaOdległość = strona.OdległośćPixelowa(najbliższyFormat);

            foreach (var format in _formaty.Skip(1))
            {
                var odległość = strona.OdległośćPixelowa(format);
                if (odległość < najmniejszaOdległość)
                {
                    najmniejszaOdległość = odległość;
                    najbliższyFormat     = format;
                }
            }
            return(najbliższyFormat);
        }
示例#3
0
 public static int OdległośćPixelowa(this IWymiarowalny w1, IWymiarowalny w2)
 {
     return(Odległość(
                w1.Szerokość.Pixels, w1.Wysokość.Pixels,
                w2.Szerokość.Pixels, w2.Wysokość.Pixels));
 }