private HtmlViewOptions CreateHtmlViewOptions(int passedPageNumber = -1, int newAngle = 0)
        {
            HtmlViewOptions htmlViewOptions = HtmlViewOptions.ForExternalResources(
                pageNumber =>
            {
                string fileName      = $"p{pageNumber}.html";
                string cacheFilePath = this.cache.GetCacheFilePath(fileName);

                return(File.Create(cacheFilePath));
            },
                (pageNumber, resource) =>
            {
                string fileName      = $"p{pageNumber}_{resource.FileName}";
                string cacheFilePath = this.cache.GetCacheFilePath(fileName);

                return(File.Create(cacheFilePath));
            },
                (pageNumber, resource) =>
            {
                var urlPrefix = "/viewer/resources/" + Path.GetFileName(this.filePath).Replace(".", "_");
                return($"{urlPrefix}/p{ pageNumber}_{ resource.FileName}");
            });

            htmlViewOptions.SpreadsheetOptions = SpreadsheetOptions.ForOnePagePerSheet();
            htmlViewOptions.SpreadsheetOptions.TextOverflowMode = TextOverflowMode.HideText;
            htmlViewOptions.SpreadsheetOptions.RenderGridLines  = globalConfiguration.GetViewerConfiguration().GetShowGridLines();
            htmlViewOptions.SpreadsheetOptions.RenderHeadings   = true;

            SetWatermarkOptions(htmlViewOptions);

            if (passedPageNumber >= 0 && newAngle != 0)
            {
                Rotation rotationAngle = GetRotationByAngle(newAngle);
                htmlViewOptions.RotatePage(passedPageNumber, rotationAngle);
            }

            return(htmlViewOptions);
        }