public void PrintPdf(UI.Controls.CalendrierCtrl Calendrier) { try { string folderImage = ConfigurationManager.AppSettings["FolderSaveImage"].ToString(); RenderTargetBitmap image = GetImage(Calendrier); PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(image)); using (Stream fileStream = new FileStream(folderImage + "Image_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".png", FileMode.OpenOrCreate, FileAccess.Write)) { encoder.Save(fileStream); } } catch (Exception ex) { string message = "Un problème est survenu lors de l'exportation en PDF ! \n \n" + ex; MessageBox.Show(message); } }
private static RenderTargetBitmap GetImage(UI.Controls.CalendrierCtrl view) { Size size = new Size(view.ActualWidth, view.ActualHeight); if (size.IsEmpty) { return(null); } RenderTargetBitmap result = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Default); DrawingVisual drawingvisual = new DrawingVisual(); using (DrawingContext context = drawingvisual.RenderOpen()) { context.DrawRectangle(new VisualBrush(view), null, new Rect(new Point(), size)); context.Close(); } result.Render(drawingvisual); return(result); }