public List<Image> Get(ImagesRequest request)
        {
            Console.WriteLine("Getting images");

            var user = (User) Request.Items[RequestItem.User];
            return this.session.Query<Image>().Where(u => u.UserId == user.UserId).ToList();
        }
        public static void Run()
        {
            var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
            var apiInstance   = new ParseApi(configuration);

            try
            {
                var options = new ImagesOptions()
                {
                    FileInfo = new FileInfo
                    {
                        FilePath    = "slides/three-slides.pptx",
                        StorageName = Common.MyStorage
                    },
                    StartPageNumber     = 1,
                    CountPagesToExtract = 2
                };

                var request  = new ImagesRequest(options);
                var response = apiInstance.Images(request);
                foreach (var page in response.Pages)
                {
                    Console.WriteLine($"Images from {page.PageIndex} page.");
                    foreach (var image in page.Images)
                    {
                        Console.WriteLine($"Image path in storage: {image.Path}. Download url: {image.DownloadUrl}");
                        Console.WriteLine($"File format: {image.FileFormat}. Page index: {image.PageIndex}");
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling ParseApi: " + e.Message);
            }
        }
Exemple #3
0
        /// <summary>
        /// Extract images from document.
        /// </summary>
        /// <param name="request">Request. <see cref="ImagesRequest" /></param>
        /// <returns><see cref="ImagesResult"/></returns>
        public ImagesResult Images(ImagesRequest request)
        {
            // verify the required parameter 'options' is set
            if (request.options == null)
            {
                throw new ApiException(400, "Missing required parameter 'options' when calling Images");
            }

            // create path and map variables
            var resourcePath = this.configuration.GetServerUrl() + "/parser/images";

            resourcePath = Regex
                           .Replace(resourcePath, "\\*", string.Empty)
                           .Replace("&amp;", "&")
                           .Replace("/?", "?");
            var postBody = SerializationHelper.Serialize(request.options); // http body (model) parameter
            var response = this.apiInvoker.InvokeApi(
                resourcePath,
                "POST",
                postBody,
                null,
                null);

            if (response != null)
            {
                return((ImagesResult)SerializationHelper.Deserialize(response, typeof(ImagesResult)));
            }

            return(null);
        }
Exemple #4
0
        public void TestGetImage_FileNotFoundResult()
        {
            var testFile = TestFiles.NotExist;
            var options  = new ImagesOptions
            {
                FileInfo = testFile.ToFileInfo(),
            };
            var request = new ImagesRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { ParseApi.Images(request); });

            Assert.AreEqual($"Can't find file located at '{testFile.FullName}'.", ex.Message);
        }
Exemple #5
0
        public void ImageExtractTest_Pdf_Container_FromPages_Error()
        {
            var testFile = TestFiles.Zip;
            var options  = new ImagesOptions
            {
                FileInfo            = testFile.ToFileInfo(),
                StartPageNumber     = 1,
                CountPagesToExtract = 2
            };

            var request = new ImagesRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { ParseApi.Images(request); });

            Assert.AreEqual($"The specified file '{testFile.FullName}' has type which is not currently supported.", ex.Message);
        }
Exemple #6
0
        public void ImageExtractTest_Pdf_FromPages_OutOfThePageRange()
        {
            var testFile = TestFiles.Pdf;
            var options  = new ImagesOptions
            {
                FileInfo            = testFile.ToFileInfo(),
                StartPageNumber     = 3,
                CountPagesToExtract = 5
            };

            var request = new ImagesRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { ParseApi.Images(request); });

            Assert.AreEqual("Request parameters missing or have incorrect format", ex.Message);
        }
Exemple #7
0
        public void TestGetImage_IncorrectPassword()
        {
            var testFile = TestFiles.PasswordProtected;
            var options  = new ImagesOptions
            {
                FileInfo = new FileInfo {
                    FilePath = testFile.FullName, Password = "******"
                },
            };
            var request = new ImagesRequest(options);

            var ex = Assert.Throws <ApiException>(() => { ParseApi.Images(request); });

            Assert.AreEqual($"Password provided for file '{testFile.FullName}' is incorrect.", ex.Message);
        }
Exemple #8
0
        public HttpResponseMessage DownloadMultipleFile(ImagesRequest data)
        {
            var          ids    = new List <int>();
            List <Image> images = new List <Image>();

            foreach (var obj in data)
            {
                ids.Add(obj.Id);
                images.Add(ImageList.GetImage(obj.Id));
            }

            var archive = AppDomain.CurrentDomain.BaseDirectory + "/archive.zip";
            var temp    = AppDomain.CurrentDomain.BaseDirectory + "/temp";

            // clear any existing archive
            if (System.IO.File.Exists(archive))
            {
                System.IO.File.Delete(archive);
            }

            // empty the temp folder
            //Directory.EnumerateFiles(temp).ToList().ForEach(f => System.IO.File.Delete(f));

            using (ZipFile zip = new ZipFile())
            {
                //zip.word = word;
                foreach (var img in images)
                {
                    string fullPath = $"{AppDomain.CurrentDomain.BaseDirectory}\\Content\\images\\{img.Id}.jpg";
                    //System.IO.File.Copy(fullPath, Path.Combine(temp, Path.GetFileName(fullPath)));
                    zip.AddFile(fullPath);
                }

                zip.Save(temp + "\\" + "ZipDownload.zip");
                var pushStreamContent = new PushStreamContent((stream, content, context) =>
                {
                    zip.Save(stream);
                    stream.Close(); // After save we close the stream to signal that we are done writing.
                }, "application/zip");

                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = pushStreamContent
                });
            }
        }
Exemple #9
0
        public void TestGetImage_Docx()
        {
            var testFile = TestFiles.FourPages;
            var options  = new ImagesOptions
            {
                FileInfo = testFile.ToFileInfo(),
            };
            var request = new ImagesRequest(options);
            var result  = ParseApi.Images(request);

            Assert.IsNotNull(result);
            int i = 0;

            foreach (var image in result.Images)
            {
                Assert.AreEqual($"parser/images/words/docx/four-pages_docx/image_{i}.jpeg", image.Path);
                Assert.NotNull(image.DownloadUrl);
                i++;
            }
        }
Exemple #10
0
        public void TestGetImage_Pdf_FromPages()
        {
            var testFile = TestFiles.Pdf;
            var options  = new ImagesOptions
            {
                FileInfo            = testFile.ToFileInfo(),
                StartPageNumber     = 1,
                CountPagesToExtract = 2
            };

            var request = new ImagesRequest(options);
            var result  = ParseApi.Images(request);

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result.Pages);
            Assert.AreEqual(2, result.Pages.Count);

            Assert.AreEqual("parser/images/pdf/template-document_pdf/page_1/image_0.jpeg", result.Pages[0].Images[0].Path);
            Assert.AreEqual("parser/images/pdf/template-document_pdf/page_2/image_0.jpeg", result.Pages[1].Images[0].Path);
        }
Exemple #11
0
        public void TestGetImage_Email()
        {
            var testFile = TestFiles.ImageAndAttachment;
            var options  = new ImagesOptions
            {
                FileInfo = testFile.ToFileInfo(),
            };
            var request = new ImagesRequest(options);
            var result  = ParseApi.Images(request);

            Assert.IsNotNull(result);
            var paths = new[]
            {
                "parser/images/email/eml/embedded-image-and-attachment_eml/",
            };

            foreach (var image in result.Images)
            {
                Assert.IsTrue(paths.Any(image.Path.Contains));
            }
        }
        public static void Run()
        {
            var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
            var apiInstance   = new ParseApi(configuration);

            try
            {
                var options = new ImagesOptions()
                {
                    FileInfo = new FileInfo
                    {
                        FilePath    = "pdf/PDF with attachements.pdf",
                        Password    = "******",
                        StorageName = Common.MyStorage
                    },
                    ContainerItemInfo = new ContainerItemInfo {
                        RelativePath = "template-document.pdf"
                    },
                    StartPageNumber     = 2,
                    CountPagesToExtract = 1
                };

                var request  = new ImagesRequest(options);
                var response = apiInstance.Images(request);
                foreach (var page in response.Pages)
                {
                    Console.WriteLine($"Images from {page.PageIndex} page.");
                    foreach (var image in page.Images)
                    {
                        Console.WriteLine($"Image path in storage: {image.Path}. Download url: {image.DownloadUrl}");
                        Console.WriteLine($"File format: {image.FileFormat}. Page index: {image.PageIndex}");
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling ParseApi: " + e.Message);
            }
        }
Exemple #13
0
        public void TestGetImage_Container()
        {
            var testFile = TestFiles.ZipWithEmailImagePdf;
            var options  = new ImagesOptions
            {
                FileInfo = testFile.ToFileInfo(),
            };
            var request = new ImagesRequest(options);
            var result  = ParseApi.Images(request);

            Assert.IsNotNull(result);
            var paths = new[]
            {
                "parser/images/containers/archive/zip-eml-jpg-pdf_zip/",
                "parser/images/containers/archive/zip-eml-jpg-pdf_zip/embedded-image-and-attachment_eml/",
                "parser/images/containers/archive/zip-eml-jpg-pdf_zip/template-document_pdf/"
            };

            foreach (var image in result.Images)
            {
                Assert.IsTrue(paths.Any(image.Path.Contains));
            }
        }
Exemple #14
0
        public void ImageExtractTest_Pdf_ContainerItem_FromPages()
        {
            var testFile = TestFiles.PdfContainer;
            var options  = new ImagesOptions
            {
                FileInfo            = testFile.ToFileInfo(),
                StartPageNumber     = 1,
                CountPagesToExtract = 2,
                ContainerItemInfo   = new ContainerItemInfo {
                    RelativePath = "template-document.pdf"
                }
            };

            var request = new ImagesRequest(options);
            var result  = ParseApi.Images(request);

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result.Pages);
            Assert.AreEqual(2, result.Pages.Count);

            Assert.AreEqual("parser/images/template-document_pdf/page_1/image_0.jpeg", result.Pages[0].Images[0].Path);
            Assert.AreEqual("parser/images/template-document_pdf/page_2/image_0.jpeg", result.Pages[1].Images[0].Path);
        }