/// <summary>
        /// Print a film box on specified graphics.
        /// </summary>
        /// <param name="filmBox">Film box.</param>
        /// <param name="graphics">Graphics on which to draw the film box.</param>
        /// <param name="marginBounds">Margin bounds.</param>
        /// <param name="imageResolution">Image resolution.</param>
        public static void Print(this FilmBox filmBox, Graphics graphics, Rectangle marginBounds, int imageResolution)
        {
            var parts = filmBox.ImageDisplayFormat.Split('\\', ',');

            if (parts.Length > 0)
            {
                RectF[] boxes = null;
                if (parts[0] == "STANDARD")
                {
                    boxes = FilmBox.PrintStandardFormat(parts, ToRectF(marginBounds));
                }
                else if (parts[0] == "ROW")
                {
                    boxes = FilmBox.PrintRowFormat(parts, ToRectF(marginBounds));
                }
                else if (parts[0] == "COL")
                {
                    boxes = FilmBox.PrintColumnFormat(parts, ToRectF(marginBounds));
                }

                if (boxes == null)
                {
                    throw new InvalidOperationException(
                              string.Format("ImageDisplayFormat {0} invalid", filmBox.ImageDisplayFormat));
                }

                for (var i = 0; i < filmBox.BasicImageBoxes.Count; i++)
                {
                    filmBox.BasicImageBoxes[i].Print(graphics, boxes[i], imageResolution);
                }
            }
        }