private void contextMenuitemSaveAs_Click(object sender, RoutedEventArgs e) { try { SaveFileDialog save_fileDialog = new SaveFileDialog() { Filter = "PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|BMP (*.bmp)|*.bmp|Word документ (*.docx)|*.docx" }; if (save_fileDialog.ShowDialog() == true && !String.IsNullOrEmpty(save_fileDialog.FileName)) { string file_name = save_fileDialog.FileName; RenderTargetBitmap rtb = new RenderTargetBitmap((int)chartControl.ActualWidth, (int)chartControl.ActualHeight, 100, 100, PixelFormats.Pbgra32); rtb.Render(chartControl); BitmapEncoder bitmap_encoder = null; if (file_name.Contains(".png")) { bitmap_encoder = new PngBitmapEncoder(); } else if (file_name.Contains(".jpg")) { bitmap_encoder = new JpegBitmapEncoder(); } else if (file_name.Contains(".bmp")) { bitmap_encoder = new BmpBitmapEncoder(); } else if (file_name.Contains(".docx")) { DocumentGenerator.CreateDynamicsReport(CurrentPatient, test_list_, test_type, indicator_, file_name); MessageBox.Show("Документ с отчетом о динамики показателей успешно сохранен!", "", MessageBoxButton.OK, MessageBoxImage.Information); return; } bitmap_encoder.Frames.Add(BitmapFrame.Create(rtb)); using (FileStream fs = new FileStream(save_fileDialog.FileName, FileMode.Create)) { bitmap_encoder.Save(fs); MessageBox.Show("График динамики показателей успешно сохранен!", "", MessageBoxButton.OK, MessageBoxImage.Information); } } } catch (Exception exception) { string message = String.Format("Обнаружена проблема при работе программы!\n{0}", exception.Message); MessageBox.Show(message, "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void menuitemSaveTestAs_Click(object sender, RoutedEventArgs e) { try { if (datagridProcedureInfo.SelectedItem != null) { ProcedureInfo selected_test_info = (ProcedureInfo)datagridProcedureInfo.SelectedItem; SaveFileDialog save_file_dialog = new SaveFileDialog() { Filter = "Word документ (*.docx)|*.docx|Zip архив (*.zip)|*.zip" }; if (save_file_dialog.ShowDialog() == true) { string filename = save_file_dialog.FileName; switch (filename.Substring(filename.LastIndexOf('.') + 1)) { case "docx": DocumentGenerator.CreateTestReport(selected_test_info.Patient, selected_test_info.Test, filename); break; case "zip": string directorypath = System.IO.Path.GetDirectoryName(filename); filename = filename.Substring(filename.LastIndexOf(@"\") + 1, filename.LastIndexOf(".") - filename.LastIndexOf(@"\") - 1); Directory.CreateDirectory(directorypath + @"\" + filename); DocumentGenerator.CreateTestReport(selected_test_info.Patient, selected_test_info.Test, directorypath + @"\" + filename + @"\" + filename + ".docx"); foreach (var attachment in selected_test_info.Test.Attachments) { File.WriteAllBytes(directorypath + @"\" + filename + @"\" + attachment.Name, attachment.Item); } ZipFile.CreateFromDirectory(directorypath + @"\" + filename, directorypath + @"\" + filename + ".zip"); Directory.Delete(directorypath + @"\" + filename, true); break; } } } } catch (Exception exception) { string message = String.Format("Обнаружена проблема при работе программы!\n{0}", exception.Message); MessageBox.Show(message, "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error); } }