/// <summary> /// Exports the specified model to a stream. /// </summary> /// <param name="model">The model.</param> /// <param name="stream">The output stream.</param> /// <param name="width">The width (points).</param> /// <param name="height">The height (points).</param> public static void Export(IPlotModel model, Stream stream, double width, double height) { var exporter = new PdfExporter { Width = width, Height = height }; exporter.Export(model, stream); }
public static void ExportPdf(this PlotModel plotModel, string fileName) { using (var fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { var exporter = new OxyPlot.PdfExporter(); if (plotModel.Width > 0 && plotModel.Height > 0) { exporter.Width = (int)Math.Ceiling(plotModel.Width); exporter.Height = (int)Math.Ceiling(plotModel.Height); } exporter.Export(plotModel, fs); } }
private static void Export(PlotModel model, string name) { var fileName = Path.Combine(OutputDirectory, name + ".png"); var directory = Path.GetDirectoryName(fileName) ?? "."; if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (ExportPng) { Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PngExporter { Width = 600, Height = 400 }; exporter.Export(model, stream); } OptimizePng(fileName); } if (ExportPdf) { fileName = Path.ChangeExtension(fileName, ".pdf"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { var exporter = new PdfExporter { Width = 600d * 72 / 96, Height = 400d * 72 / 96 }; exporter.Export(model, stream); } } if (ExportSvg) { fileName = Path.ChangeExtension(fileName, ".svg"); Console.WriteLine(fileName); using (var stream = File.Create(fileName)) { using (var exporter = new OxyPlot.WindowsForms.SvgExporter { Width = 600, Height = 400, IsDocument = true }) { exporter.Export(model, stream); } } } }
/// <summary> /// Exports the specified model to a stream. /// </summary> /// <param name="model">The model.</param> /// <param name="stream">The output stream.</param> /// <param name="width">The width (points).</param> /// <param name="height">The height (points).</param> public static void Export(IPlotModel model, Stream stream, double width, double height) { var exporter = new PdfExporter { Width = width, Height = height, Background = model.Background }; exporter.Export(model, stream); }
private async void SaveDocument(IPlotModel model, String newDocument) { if (model == null) { var msg = new MessageDialog("График не создан, рассчитайте распределение", "Ошибка сохранения"); await msg.ShowAsync(); return; } var savePicker = new Windows.Storage.Pickers.FileSavePicker { SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary }; savePicker.FileTypeChoices.Add("PDF Document", new List<string>() { ".pdf" }); savePicker.SuggestedFileName = newDocument; StorageFile file = await savePicker.PickSaveFileAsync(); if (file != null) { CachedFileManager.DeferUpdates(file); var stream = await file.OpenAsync(FileAccessMode.ReadWrite); using (var outputStream = stream.GetOutputStreamAt(0)) { using (var dataWriter = new Windows.Storage.Streams.DataWriter(outputStream)) { using (var memoryStream = new MemoryStream()) { var pdf = new PdfExporter(); PdfExporter.Export(model, memoryStream, 1000, 400); var bt = memoryStream.ToArray(); dataWriter.WriteBytes(bt); await dataWriter.StoreAsync(); await outputStream.FlushAsync(); } } } var status = await CachedFileManager.CompleteUpdatesAsync(file); if (status == FileUpdateStatus.Complete) { var msg = new MessageDialog("По пути " + file.Path, "Файл сохранен"); await msg.ShowAsync(); } else { var msg = new MessageDialog("Произошла ошибка сохранения"); await msg.ShowAsync(); } } }