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()); } }
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()); } }
/// <summary> /// The methods provided in this section are simply used to allow /// NavigationHelper to respond to the page's navigation methods. /// <para> /// Page specific logic should be placed in event handlers for the /// <see cref="NavigationHelper.LoadState"/> /// and <see cref="NavigationHelper.SaveState"/>. /// The navigation parameter is available in the LoadState method /// in addition to page state preserved during an earlier session. /// </para> /// </summary> /// <param name="e">Provides data for navigation methods and event /// handlers that cannot cancel the navigation request.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { this.navigationHelper.OnNavigatedTo(e); int pageNumber = (int)e.Parameter; PdfFixedDocument document = (Application.Current as App).Document; var t = Task <PdfBgraByteRenderingSurface> .Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[pageNumber]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface <PdfBgraByteRenderingSurface>(96, 96); PdfRendererSettings settings = new PdfRendererSettings(96, 96, rs); renderer.ConvertPageToImage(settings); return(rs); }) .ContinueWith(value => { PdfBgraByteRenderingSurface rs = value.Result; WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); pageImage.Width = pageBitmap.PixelWidth; pageImage.Height = pageBitmap.PixelHeight; pageImage.Source = pageBitmap; }, TaskScheduler.FromCurrentSynchronizationContext()); }
public static response GenerateImgThumbNail(string sType, string path, string fileName, int width, int height) { FileInfo fi = new FileInfo(Path.Combine(path, fileName)); //string outputFile = fileName.Replace(fi.Extension, sType == "s" ? "_s.gif" : "_m.gif"); string outputFile = fileName.Replace(fi.Extension, "_" + sType + ".jpg"); switch (fi.Extension.ToLower()) { case ".pdf": try { FileStream fs = new FileStream(Path.Combine(path, fileName), FileMode.Open, FileAccess.Read); PdfFixedDocument pDoc = new PdfFixedDocument(fs); fs.Dispose(); PdfPageRenderer renderer = new PdfPageRenderer(pDoc.Pages[0]); PdfRendererSettings s = new PdfRendererSettings(); s.DpiX = s.DpiY = 96; FileStream pngStream = File.OpenWrite(Path.Combine(path, fileName.Replace(".pdf", ".png"))); renderer.ConvertPageToImage(pngStream, PdfPageImageFormat.Png, s); pngStream.Flush(); pngStream.Dispose(); response r = SaveThumbNail(sType, path, fileName.Replace(".pdf", ".png"), null, width, height); try { File.Delete(Path.Combine(path, fileName.Replace(".pdf", ".png"))); } catch { } return(r); //return new response(false, "eroare", null, null, null); } catch (Exception exp) { LogWriter.Log(exp); return(new response(false, exp.ToString(), null, null, new System.Collections.Generic.List <Error>() { new Error(exp) })); } case ".jpg": case ".jpeg": case ".png": case ".bmp": try { return(SaveThumbNail(sType, path, fileName, null, width, height)); } catch (Exception exp) { LogWriter.Log(exp); return(new response(false, exp.ToString(), null, null, new System.Collections.Generic.List <Error>() { new Error(exp) })); } default: Error err = ErrorParser.ErrorMessage("unsupportedFormat"); return(new response(false, err.ERROR_MESSAGE, null, null, new System.Collections.Generic.List <Error>() { err })); } }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { Assembly assembly = typeof(MainPage).GetTypeInfo().Assembly; Stream pdfStream = assembly.GetManifestResourceStream("Xfinium.Pdf.Samples.Pro.WP81.PageThumbnails.xfinium.pdf"); PdfFixedDocument document = new PdfFixedDocument(pdfStream); pdfStream.Dispose(); 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(); border.Child = pageImage; pageThumbnailImages[i] = pageImage; pageThumbnails.Children.Add(border); } for (i = 0; i < document.Pages.Count; i++) { int index = i; var t = Task <PdfBgraByteRenderingSurface> .Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[index]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface <PdfBgraByteRenderingSurface>(thumbnailDpi, thumbnailDpi); PdfRendererSettings settings = new PdfRendererSettings(thumbnailDpi, thumbnailDpi, rs); renderer.ConvertPageToImage(settings); return(rs); }) .ContinueWith(value => { PdfBgraByteRenderingSurface rs = value.Result; WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); pageThumbnailImages[index].Width = pageBitmap.PixelWidth; pageThumbnailImages[index].Height = pageBitmap.PixelHeight; pageThumbnailImages[index].Source = pageBitmap; }, 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()); } }
private void btnConvert_Click(object sender, RoutedEventArgs e) { if (cbxPageNumber.SelectedIndex != -1) { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[cbxPageNumber.SelectedIndex]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface <PdfBgraByteRenderingSurface>(96, 96); PdfRendererSettings settings = new PdfRendererSettings(96, 96, rs); renderer.ConvertPageToImage(settings); WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); //pageImage.Width = pageBitmap.PixelWidth; //pageImage.Height = pageBitmap.PixelHeight; pageImage.Source = pageBitmap; } }
private void btnConvert_Click(object sender, RoutedEventArgs e) { if (cbxPageNumber.SelectedIndex != -1) { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[cbxPageNumber.SelectedIndex]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface<PdfBgraByteRenderingSurface>(96, 96); PdfRendererSettings settings = new PdfRendererSettings(96, 96, rs); renderer.ConvertPageToImage(settings); WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); //pageImage.Width = pageBitmap.PixelWidth; //pageImage.Height = pageBitmap.PixelHeight; pageImage.Source = pageBitmap; } }
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()); } }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { Assembly assembly = typeof(MainPage).GetTypeInfo().Assembly; Stream pdfStream = assembly.GetManifestResourceStream("Xfinium.Pdf.Samples.Pro.WP81.PageThumbnails.xfinium.pdf"); PdfFixedDocument document = new PdfFixedDocument(pdfStream); pdfStream.Dispose(); 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(); border.Child = pageImage; pageThumbnailImages[i] = pageImage; pageThumbnails.Children.Add(border); } for (i = 0; i < document.Pages.Count; i++) { int index = i; var t = Task<PdfBgraByteRenderingSurface>.Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[index]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface<PdfBgraByteRenderingSurface>(thumbnailDpi, thumbnailDpi); PdfRendererSettings settings = new PdfRendererSettings(thumbnailDpi, thumbnailDpi, rs); renderer.ConvertPageToImage(settings); return rs; }) .ContinueWith(value => { PdfBgraByteRenderingSurface rs = value.Result; WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); pageThumbnailImages[index].Width = pageBitmap.PixelWidth; pageThumbnailImages[index].Height = pageBitmap.PixelHeight; pageThumbnailImages[index].Source = pageBitmap; }, TaskScheduler.FromCurrentSynchronizationContext()); } }
/// <summary> /// The methods provided in this section are simply used to allow /// NavigationHelper to respond to the page's navigation methods. /// <para> /// Page specific logic should be placed in event handlers for the /// <see cref="NavigationHelper.LoadState"/> /// and <see cref="NavigationHelper.SaveState"/>. /// The navigation parameter is available in the LoadState method /// in addition to page state preserved during an earlier session. /// </para> /// </summary> /// <param name="e">Provides data for navigation methods and event /// handlers that cannot cancel the navigation request.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { this.navigationHelper.OnNavigatedTo(e); int pageNumber = (int)e.Parameter; PdfFixedDocument document = (Application.Current as App).Document; var t = Task<PdfBgraByteRenderingSurface>.Factory.StartNew(() => { PdfPageRenderer renderer = new PdfPageRenderer(document.Pages[pageNumber]); PdfBgraByteRenderingSurface rs = renderer.CreateRenderingSurface<PdfBgraByteRenderingSurface>(96, 96); PdfRendererSettings settings = new PdfRendererSettings(96, 96, rs); renderer.ConvertPageToImage(settings); return rs; }) .ContinueWith(value => { PdfBgraByteRenderingSurface rs = value.Result; WriteableBitmap pageBitmap = new WriteableBitmap(rs.Width, rs.Height); Stream imageStream = pageBitmap.PixelBuffer.AsStream(); imageStream.Write(rs.Bitmap, 0, rs.Bitmap.Length); pageImage.Width = pageBitmap.PixelWidth; pageImage.Height = pageBitmap.PixelHeight; pageImage.Source = pageBitmap; }, TaskScheduler.FromCurrentSynchronizationContext()); }