protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); string pageNumber = ""; if (NavigationContext.QueryString.TryGetValue("pagenumber", out pageNumber)) { PdfFixedDocument document = (Application.Current as App).Document; var t = Task <PdfArgbIntRenderingSurface> .Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[int.Parse(pageNumber)]); PdfArgbIntRenderingSurface rs = renderer.CreateRenderingSurface <PdfArgbIntRenderingSurface>(96, 96); PdfRendererSettings settings = new PdfRendererSettings(96, 96, rs); renderer.ConvertPageToImage(settings); return(rs); }) .ContinueWith(value => { PdfArgbIntRenderingSurface rs = value.Result; WriteableBitmap wb = new WriteableBitmap(rs.Width, rs.Height); Array.Copy(rs.Bitmap, wb.Pixels, rs.Bitmap.Length); pageImage.Width = wb.PixelWidth; pageImage.Height = wb.PixelHeight; pageImage.Source = wb; }, TaskScheduler.FromCurrentSynchronizationContext()); } }
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { StreamResourceInfo xfiniumPdf = Application.GetResourceStream(new Uri("xfinium.pdf", UriKind.Relative)); PdfFixedDocument document = new PdfFixedDocument(xfiniumPdf.Stream); xfiniumPdf.Stream.Close(); (Application.Current as App).Document = document; int i = 0; pageThumbnailImages = new Image[document.Pages.Count]; for (i = 0; i < document.Pages.Count; i++) { Border border = new Border(); border.BorderThickness = new Thickness(1); border.BorderBrush = new SolidColorBrush(Colors.Black); border.Margin = new Thickness(10, 10, 0, 0); Image pageImage = new Image(); pageImage.Tag = i; pageImage.Tap += pageImage_Tap; border.Child = pageImage; pageThumbnailImages[i] = pageImage; pageThumbnails.Children.Add(border); } for (i = 0; i < document.Pages.Count; i++) { int index = i; var t = Task <PdfArgbIntRenderingSurface> .Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[index]); PdfArgbIntRenderingSurface rs = renderer.CreateRenderingSurface <PdfArgbIntRenderingSurface>(thumbnailDpi, thumbnailDpi); PdfRendererSettings settings = new PdfRendererSettings(thumbnailDpi, thumbnailDpi, rs); renderer.ConvertPageToImage(settings); return(rs); }) .ContinueWith(value => { PdfArgbIntRenderingSurface rs = value.Result; WriteableBitmap wb = new WriteableBitmap(rs.Width, rs.Height); Array.Copy(rs.Bitmap, wb.Pixels, rs.Bitmap.Length); pageThumbnailImages[index].Width = wb.PixelWidth; pageThumbnailImages[index].Height = wb.PixelHeight; pageThumbnailImages[index].Source = wb; }, TaskScheduler.FromCurrentSynchronizationContext()); } }