Exemplo n.º 1
0
        public static GetImageUrlsResponse GetImageUrls(GetImageUrlsParameters parameters)
        {
            if (string.IsNullOrEmpty(parameters.Path))
            {
                var empty = new GetImageUrlsResponse {
                    imageUrls = new string[0]
                };
                return(empty);
            }

            DocumentInfoOptions   documentInfoOptions   = new DocumentInfoOptions(parameters.Path);
            DocumentInfoContainer documentInfoContainer = _imageHandler.GetDocumentInfo(documentInfoOptions);

            int[] pageNumbers = new int[documentInfoContainer.Pages.Count];
            for (int i = 0; i < documentInfoContainer.Pages.Count; i++)
            {
                pageNumbers[i] = documentInfoContainer.Pages[i].Number;
            }

            var applicationHost = GetApplicationHost();

            string[] imageUrls = ImageUrlHelper.GetImageUrls(applicationHost, pageNumbers, parameters);

            var result = new GetImageUrlsResponse
            {
                imageUrls = imageUrls
            };

            return(result);
        }
Exemplo n.º 2
0
        public override void ProcessRequest(HttpContext context)
        {
            try
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                string json;
                bool   isJsonP = context.Request.HttpMethod == "GET";

                if (isJsonP)
                {
                    json = context.Request.Params["data"];
                }
                else
                {
                    json = new StreamReader(context.Request.InputStream).ReadToEnd();
                }

                GetImageUrlsParameters  parameters = serializer.Deserialize <GetImageUrlsParameters>(json);
                OperationStatusResponse data       = GetImageUrls(_urlsCreator, parameters);
                string serializedData = serializer.Serialize(data);
                CreateJsonOrJsonpResponse(context, serializedData);
            }
            catch (Exception exception)
            {
                OnException(exception, context);
            }
        }
        public ActionResult ViewDocument(ViewDocumentParameters request)
        {
            string fileName = Path.GetFileName(request.Path);

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

            DocumentInfoContainer docInfo = annotator.GetDocumentInfo(request.Path);

            result.documentDescription = new FileDataJsonSerializer(docInfo.Pages).Serialize(true);
            result.docType             = docInfo.DocumentType.ToLower();
            result.fileType            = docInfo.FileType.ToLower();

            string applicationHost = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/');

            var preloadCount = request.PreloadPagesCount;
            int pageCount    = preloadCount ?? 1;

            int[] pageNumbers = new int[docInfo.Pages.Count];
            for (int i = 0; i < pageNumbers.Length; i++)
            {
                pageNumbers[i] = i;
            }


            GetImageUrlsParameters imageUrlParameters = new GetImageUrlsParameters()
            {
                Path                = request.Path,
                FirstPage           = 0,
                PageCount           = pageNumbers.Length,
                UsePdf              = docInfo.Extension.ToLower().Equals("pdf"),
                Width               = docInfo.Pages[0].Width,
                SupportPageRotation = false,
                UseHtmlBasedEngine  = false
            };


            result.imageUrls = GetImageUrls(applicationHost, pageNumbers, imageUrlParameters);

            //result.imageUrls = urls.ToArray();

            JavaScriptSerializer serializer = new JavaScriptSerializer {
                MaxJsonLength = int.MaxValue
            };

            string serializedData = serializer.Serialize(result);

            // invoke event
            new DocumentOpenSubscriber().HandleEvent(request.Path);

            return(Content(serializedData, "application/json"));
        }
        public ActionResult GetImageUrls(GetImageUrlsParameters parameters)
        {
            if (string.IsNullOrEmpty(parameters.Path))
            {
                GetImageUrlsResponse empty = new GetImageUrlsResponse {
                    imageUrls = new string[0]
                };

                var serialized = new JavaScriptSerializer().Serialize(empty);
                return(Content(serialized, "application/json"));
            }

            var imageOptions = new ImageOptions();
            var imagePages   = _imageHandler.GetPages(parameters.Path, imageOptions);

            // Save images some where and provide urls
            var urls           = new List <string>();
            var tempFolderPath = Path.Combine(Server.MapPath("~"), "Content", "TempStorage");

            foreach (var pageImage in imagePages)
            {
                var docFoldePath = Path.Combine(tempFolderPath, parameters.Path);

                if (!Directory.Exists(docFoldePath))
                {
                    Directory.CreateDirectory(docFoldePath);
                }

                var pageImageName = string.Format("{0}\\{1}.png", docFoldePath, pageImage.PageNumber);

                using (var stream = pageImage.Stream)
                    using (FileStream fileStream = new FileStream(pageImageName, FileMode.Create))
                    {
                        stream.Seek(0, SeekOrigin.Begin);
                        stream.CopyTo(fileStream);
                    }

                var baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/";
                urls.Add(string.Format("{0}Content/TempStorage/{1}/{2}.png", baseUrl, parameters.Path, pageImage.PageNumber));
            }

            GetImageUrlsResponse result = new GetImageUrlsResponse {
                imageUrls = urls.ToArray()
            };

            var serializedData = new JavaScriptSerializer().Serialize(result);

            return(Content(serializedData, "application/json"));
        }
Exemplo n.º 5
0
        public ActionResult GetImageUrls(GetImageUrlsParameters parameters)
        {
            var guid = parameters.Path;

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

            var pageNumbers     = documentInfoContainer.Pages.Select(_ => _.Number).ToArray();
            var applicationHost = GetApplicationHost();

            // Get image urls
            string[] imageUrls = ImageUrlHelper.GetImageUrls(applicationHost, pageNumbers, parameters);

            return(ToJsonResult(new GetImageUrlsResult(imageUrls)));
        }
        public ActionResult GetImageUrls(GetImageUrlsParameters parameters)
        {
            if (string.IsNullOrEmpty(parameters.Path))
            {
                return(ToJsonResult(new GetImageUrlsResponse(new string[0])));
            }
            int pageCountPreload = GetDocumentPages(parameters.Path);

            int[] pageNumber = new int[pageCountPreload];
            for (int i = 0; i < pageNumber.Length; i++)
            {
                pageNumber[i] = i;
            }
            string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/');

            string[] array = GetImageUrls(baseUrl, pageNumber, parameters);
            return(ToJsonResult(new GetImageUrlsResponse(array)));
        }
 public static string[] GetImageUrls(string applicationHost, int[] pageNumbers, GetImageUrlsParameters parameters)
 {
     return(GetImageUrls(applicationHost, parameters.Path, parameters.FirstPage, pageNumbers.Length, parameters.Width,
                         parameters.Quality, parameters.UsePdf,
                         parameters.WatermarkText, parameters.WatermarkColor, parameters.WatermarkOpacity,
                         parameters.WatermarkPosition,
                         parameters.WatermarkWidth,
                         parameters.IgnoreDocumentAbsence,
                         parameters.UseHtmlBasedEngine, parameters.SupportPageRotation,
                         parameters.InstanceIdToken,
                         null,
                         pageNumbers));
 }
Exemplo n.º 8
0
        public static GetImageUrlsResponse GetImageUrls(GetImageUrlsParameters parameters)
        {
            var docPath = parameters.Path;

            if (string.IsNullOrEmpty(parameters.Path))
            {
                var empty = new GetImageUrlsResponse {
                    imageUrls = new string[0]
                };
                return(empty);
            }

            DocumentInfoContainer documentInfoContainer = _imageHandler.GetDocumentInfo(parameters.Path);

            int[] pageNumbers = new int[documentInfoContainer.Pages.Count];
            for (int i = 0; i < documentInfoContainer.Pages.Count; i++)
            {
                pageNumbers[i] = documentInfoContainer.Pages[i].Number;
            }

            var applicationHost = GetApplicationHost();

            string[] imageUrls = ImageUrlHelper.GetImageUrls(applicationHost, pageNumbers, parameters);

            string[] attachmentUrls = new string[0];
            foreach (AttachmentBase attachment in documentInfoContainer.Attachments)
            {
                List <PageImage> pages = _imageHandler.GetPages(attachment);
                var attachmentInfo     = _imageHandler.GetDocumentInfo(_tempPath + "\\" + Path.GetFileNameWithoutExtension(docPath) + Path.GetExtension(docPath).Replace(".", "_") + "\\attachments\\" + attachment.Name);

                GetImageUrlsParameters attachmentResponse = parameters;
                attachmentResponse.Path = attachmentInfo.Guid;
                int[] attachmentPageNumbers = new int[pages.Count];
                for (int i = 0; i < pages.Count; i++)
                {
                    attachmentPageNumbers[i] = pages[i].PageNumber;
                }
                Array.Resize <string>(ref attachmentUrls, (attachmentUrls.Length + pages.Count));
                string[] attachmentImagesUrls = new string[pages.Count];
                attachmentImagesUrls = ImageUrlHelper.GetImageUrls(applicationHost, attachmentPageNumbers, attachmentResponse);
                attachmentImagesUrls.CopyTo(attachmentUrls, (attachmentUrls.Length - pages.Count));
            }
            if (documentInfoContainer.Attachments.Count > 0)
            {
                var imagesUrls = new string[attachmentUrls.Length + imageUrls.Length];
                imageUrls.CopyTo(imagesUrls, 0);
                attachmentUrls.CopyTo(imagesUrls, imageUrls.Length);

                var result = new GetImageUrlsResponse
                {
                    imageUrls = imagesUrls
                };
                return(result);
            }
            else
            {
                var result = new GetImageUrlsResponse
                {
                    imageUrls = imageUrls
                };
                return(result);
            }
        }
 public ActionResult GetImageUrls(GetImageUrlsParameters parameters)
 {
     OperationStatusResponse data = _coreHandler.GetImageUrls(this, parameters);
     return CreateJsonOrJsonpResponse(data, parameters.Callback);
 }
        public HttpResponseMessage GetImageUrls(GetImageUrlsParameters parameters)
        {
            OperationStatusResponse data = _coreHandler.GetImageUrls(this, parameters);

            return(CreateJsonOrJsonpResponse(data, parameters.Callback));
        }