using System;
using System.IO;
using Aspose.Pdf.Cloud.Sdk.Api;
using Aspose.Pdf.Cloud.Sdk.Model;
using System.Collections.Generic;

namespace Aspose.PDF.Cloud.Examples.Kb
{
    public class PdfTasks
    {
        public static void ExtractImages()
        {
            PdfApi pdfApi = new PdfApi("Key", "SID");//For extracting images

            String fileName = "TextAndImages.pdf";
            try
            {
                // Upload source file to aspose cloud storage
                FilesUploadResult result = pdfApi.UploadFile(fileName, new MemoryStream(File.ReadAllBytes(fileName)));
                if (result.Errors.Count == 0)
                {
                    ImagesResponse imagesResponse = pdfApi.GetImages(fileName, 1);
                    foreach (var item in imagesResponse.Images.List)
                    {
                        Stream storageRes = pdfApi.GetImageExtractAsJpeg(fileName, item.Id);
                        FileStream fileStream = new FileStream($"Page-{item.PageNumber}-{item.Id}.jpg", FileMode.Create, FileAccess.Write);
                        storageRes.CopyTo(fileStream);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
            }
        }
   }
}