コード例 #1
0
        /// <summary>
        /// Calculate the printing design parameters for option 2 which the client may choose
        /// </summary>
        /// <param name="props"></param>
        /// <returns></returns>
        public Option ReturnFinalOptionTwo(PropertiesToCalculateOptionsWith props)
        {
            Option option = new Option();

            if (props.SignatureSizeWidth > 0)
            {
                option.Across = (int)Math.Floor(((props.SheetSizeAcross - props.SideMargin)
                                                 / props.SignatureSizeWidth));
            }
            else
            {
                option.Across = (int)Math.Floor((props.SheetSizeAcross - props.SideMargin)
                                                / (props.PageSizeWidth + props.Bleeds));
            }

            if (props.SignatureSizeLength > 0)
            {
                option.Around = (int)Math.Floor((props.SheetSizeAround - props.Gripper
                                                 - props.TailMargin) / props.SignatureSizeLength);
            }
            else
            {
                option.Around = (int)Math.Floor((props.SheetSizeAround - props.Gripper
                                                 - props.TailMargin) / (props.PageSizeLength + props.Bleeds));
            }

            option.Out = option.Across * option.Around;

            if (props.SignatureSizeWidth > 0)
            {
                option.Area = (float)Math.Round((props.SignatureSizeWidth * option.Across)
                                                * (props.SignatureSizeLength * option.Around), 2);
            }
            else
            {
                option.Area = (float)Math.Round(((props.PageSizeWidth + props.Bleeds)
                                                 * option.Across) * ((props.PageSizeLength + props.Bleeds) * option.Around), 2);
            }

            if (option.Out == 0)
            {
                option.Wasteage = 0;
            }
            else
            {
                option.Wasteage = (int)Math.Round((1 - (option.Area / (props.SheetSizeAround
                                                                       * props.SheetSizeAcross))) * 100);
            }

            return(option);
        }
コード例 #2
0
        private void CalculateOptionTwoValues(object sender, EventArgs e)
        {
            try {
                if (_view.PageSizeLength != 0 && _view.PageSizeWidth != 0 && _view.SignatureSizeWidth != 0 && _view.SignatureSizeLength != 0 &&
                    _view.SheetSizeAround != 0 && _view.SheetSizeAcross != 0)
                {
                    PropertiesToCalculateOptionsWith props = new PropertiesToCalculateOptionsWith(
                        _view.PageSizeWidth, _view.PageSizeLength, _view.SignatureSizeWidth,
                        _view.SignatureSizeLength, _view.SheetSizeAround, _view.SheetSizeAcross,
                        _view.Gripper, _view.TailMargin, _view.Bleeds, _view.SideMargin);

                    var option = _impostionCalculatorManager.ReturnFinalOptionTwo(props);

                    _view.OptionTwoAcross   = option.Across;
                    _view.OptionTwoAround   = option.Around;
                    _view.OptionTwoOut      = option.Out;
                    _view.OptionTwoArea     = option.Area;
                    _view.OptionTwoWasteage = option.Wasteage;
                }
            }
            catch (Exception ex) {
                LogErrorToView(this, new ErrorEventArgs(ex.Message));
            }
        }