/// <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); }
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)); } }