예제 #1
0
        /// <summary>
        ///  Create and initialize the rendering engine.  This method sets all of the configuration settings
        ///  and parses the songs into the initial list of nodes.
        /// </summary>
        /// <param name="song">Song.</param>
        /// <param name="fonts">Fonts.</param>
        /// <param name="appSettings">App settings.</param>
        /// <param name="pageSetup">Page setup.</param>
        /// <param name="forDisplay">If set to <c>true</c> for display.</param>
        public RenderEngine(SongData song, AppSettings appSettings, PageSetup pageSetup, RenderOption renderOption)
        {
            _song         = song;
            _renderOption = renderOption;
            _appSettings  = appSettings;

            #region Page Setup
            _pageSettings.PaperHeight = pageSetup.GetPaperHeight(Unit.Pixel);
            _pageSettings.PaperWidth  = pageSetup.GetPaperWidth(Unit.Pixel);
            _pageSettings.PageHeight  = pageSetup.GetPageHeight(Unit.Pixel);
            _pageSettings.PageWidth   = pageSetup.GetPageWidth(Unit.Pixel);
            _pageSettings.TopMargin   = pageSetup.GetTopMargin(Unit.Pixel);
            _pageSettings.LeftMargin  = pageSetup.GetLeftMargin(Unit.Pixel);

            _paperHeight = Convert.ToInt32((long)_pageSettings.PaperHeight);
            _paperWidth  = Convert.ToInt32((long)_pageSettings.PaperWidth);
            #endregion

            ParseSong(_song);
        }