Viscomsoft UWP PDF Viewer SDK

IPage.DrawAsync Method

 

Draw the page for non-blocking calls.
 
 C#

public Task<IRandomAccessStream> DrawAsync(int width, int height)

 


Parameter
width - the width of page
height - the height of page

Namespace: Viscomsoft.UWP.PDFViewerSDK;

Return Value
Return new instance of a IRandomAccessStream

Example

   

[C# Syntax] 
using Viscomsoft.UWP.PDFViewerSDK;

public sealed partial class MainPage : Page
{

  private PDFDisplayManager _pdfDisplayManager = null;


  private async void open(StorageFile file)
  {

    DocumentFactory factory = new DocumentFactory();

    IDocument doc = factory.CreateDocument(file.Name);

    bool opened = await doc.OpenAsync(file);

    _pdfDisplayManager = new PDFDisplayManager();

    _pdfDisplayManager.Width = (int)Window.Current.Bounds.Width;

    _pdfDisplayManager.Height = (int)Window.Current.Bounds.Height;

    _pdfDisplayManager.Document = doc;

    _pdfDisplayManager.GotoPage(1);

    uiViewPanel.Child = createScrollViewControl();

    IPage page = await _pdfDisplayManager.Document.LoadPageAsync(1);

Windows.Storage.Streams.IRandomAccessStream stream = await page.DrawAsync(doc.DefaultPageSize.Width, doc.DefaultPageSize.Height);

  }

  private UIElement createScrollViewControl()
  {

      ScrollViewControl svc = new ScrollViewControl();

      svc.DataContext = _pdfDisplayManager;

      svc.Name = "uiScrollView";

      svc.SetBinding(ScrollViewControl.ItemCountProperty, new Binding { Path = new PropertyPath("PageCount") });

      svc.SetBinding(ScrollViewControl.ItemIndexProperty, new Binding { Path = new PropertyPath("CurrentIndex"), Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.Default });

      svc.StartIndex = _pdfDisplayManager.CurrentIndex;

      return svc;

}