private void ViewDocumentAsHtml(ViewDocumentParameters request, ViewDocumentResponse result)
        {
            var guid = request.Path;
            var fileName = Path.GetFileName(request.Path);

            // Get document info
            var documentInfo = _htmlHandler.GetDocumentInfo(guid);

            // Serialize document info
            SerializationOptions serializationOptions = new SerializationOptions
            {
                UsePdf = false,
                IsHtmlMode = true,
                SupportListOfBookmarks = request.SupportListOfBookmarks,
                SupportListOfContentControls = request.SupportListOfContentControls
            };
            var documentInfoJson = new DocumentInfoJsonSerializer(documentInfo, serializationOptions).Serialize();

            // Build html options
            var htmlOptions = new HtmlOptions
            {
                IsResourcesEmbedded = Utils.IsImage(fileName),
                HtmlResourcePrefix =  GetHtmlResourcePrefix(guid),
                PageNumber = 1,
                CountPagesToConvert = request.PreloadPagesCount.GetValueOrDefault(1)
            };
            var htmlPageContents = GetHtmlPageContents(guid, htmlOptions);

            // Build result
            result.pageHtml = htmlPageContents
                .Select(_ => _.Html)
                .ToArray();
            result.pageCss = htmlPageContents
                .Where(_ => !string.IsNullOrEmpty(_.Css))
                .Select(_ => _.Css)
                .ToArray();
            result.documentDescription = documentInfoJson;
            result.docType = documentInfo.DocumentType;
            result.fileType = GetFileTypeOrEmptyString(documentInfo.FileType);
        }
        private void ViewDocumentAsImage(ViewDocumentParameters request, ViewDocumentResponse result)
        {
            var guid = request.Path;

            // Get document info
            var documentInfo = _imageHandler.GetDocumentInfo(guid);

            // Serialize document info
            SerializationOptions serializationOptions = new SerializationOptions
            {
                UsePdf = request.UsePdf,
                SupportListOfBookmarks = request.SupportListOfBookmarks,
                SupportListOfContentControls = request.SupportListOfContentControls
            };
            var documentInfoJson = new DocumentInfoJsonSerializer(documentInfo, serializationOptions)
                .Serialize();

            // Build result
            result.documentDescription = documentInfoJson;
            result.docType = documentInfo.DocumentType;
            result.fileType = documentInfo.FileType;
            int[] pageNumbers = documentInfo.Pages.Select(_ => _.Number).ToArray();
            result.imageUrls = ImageUrlHelper.GetImageUrls(GetApplicationHost(), pageNumbers, request);
        }
        public ActionResult ViewDocument(ViewDocumentParameters request)
        {
            if (Utils.IsValidUrl(request.Path))
                request.Path = DownloadToStorage(request.Path);

            var result = new ViewDocumentResponse
            {
                pageCss = new string[] { },
                lic = true,
                pdfDownloadUrl = GetPdfDownloadUrl(request),
                pdfPrintUrl = GetPdfPrintUrl(request),
                url = GetFileUrl(request),
                path = request.Path,
                name = Path.GetFileName(request.Path)
            };

            if (request.UseHtmlBasedEngine)
                ViewDocumentAsHtml(request, result);
            else
                ViewDocumentAsImage(request, result);

            return new LargeJsonResult { Data = result };
        }