←Select platform

GetTotalPagesAsync Method

Gets the number of pages in a stream.
- (void)totalPagesInStreamAsync:(LTLeadStream *)stream  
                     completion:(void (^)(NSInteger totalPages, NSError * __nullable error))completion 


A ILeadStream containing the image data to query.

Return Value

Number of pages in the specified stream.


NOTE: This topic is part of RasterCodecs Async support using the .NET System.ComponentMode.AsyncOperation model. For .NET async/await, use Task<CodecsImageInfo> GetInformationAsync(ILeadStream stream, bool totalPages).

GetInformationAsync and GetFormatAsync use GetInformationAsync internally. So, if more information about the image is required, it is recommended to call GetInformationAsync directly and obtain the data once.

using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
public void LoadPagesFromStreamTest() 
   // Create a new RasterCodecs instance 
   using (RasterCodecs rasterCodecs = new RasterCodecs()) 
      Stream stream = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")); 
      RasterImageFormat rasterImageFormat = rasterCodecs.GetFormat(stream); 
      int totalPages = rasterCodecs.GetTotalPages(stream); 
      // Using extensions in RasterCodecsExtensions 
      // GetInformationAsync is used to get CodecsImageInfo 
       using (ILeadStream outputLeadStream = LeadStream.Factory.FromStream(stream)) 
         //Using GetInformationAsync to obtain the format data as CodecsImageInfo, instead of the internal GetFormatAsync 
         Task<CodecsImageInfo> task = rasterCodecs.GetInformationAsync(outputLeadStream, true); 
         CodecsImageInfo codecsImageInfo = task.Result; 
         //Get task data 
         Debug.WriteLine($"Task ID: {task.Id}"); 
         Debug.WriteLine($"Is a Document File: {task.Result.Document.IsDocumentFile}"); 
         Debug.WriteLine($"codecsImageInfo Palette: {codecsImageInfo.GetPalette()}"); 
         // Get total pages using TotalPages instead of GetTotalPagesAsync 
         Debug.WriteLine($"Total Pages: {task.Result.TotalPages}"); 
      // Get the number of pages 
      int pageCount = rasterCodecs.GetTotalPages(stream); 
      Debug.WriteLine("Number of pages in the file is {0}", pageCount); 
      // Load all pages 
      for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) 
         using (RasterImage rasterImage = rasterCodecs.Load(stream, pageNumber)) 
            Debug.WriteLine("Page {0} loaded", pageNumber); 
static class LEAD_VARS 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 

Target Platforms

Help Version 22.0.2023.5.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.