Экспорт OxyPlot PlotModel в ReportDocument дает размытое изображение
Долгое время скрывался, впервые постер.
В настоящее время я работаю с приложением WPF, которое использует OxyPlot для создания графика. Я хочу экспортировать сгенерированный график в ReportDocument (RDLC) и распечатать его в формате PDF, используя CutePdf. Я могу сделать это успешно.
В настоящее время я использую этот подход, выполняя приведенный ниже фрагмент кода.
using (var memStream = new MemoryStream())
{
PngExporter.Export(PlotModel, memStream, 850, 700, OxyColors.White, 120);
var fromStream = Image.FromStream(memStream);
fromStream.Save(memStream, ImageFormat.Png);
imageArray = new byte[memStream.Length];
memStream.Seek(0, SeekOrigin.Begin);
memStream.Read(imageArray, 0, (int) memStream.Length);
}
var stringBytes = Convert.ToBase64String(imageArray);
Чтобы передать это в RDLC, я должен преобразовать поток памяти в Base64String и передать его в качестве параметра. Как так;
var parameter = new ReportParameter("Chart", stringBytes);
reportViewer.LocalReport.SetParameters(parameter);
Однако, несмотря на то, что все это прекрасно и прекрасно, изображение, выводимое в PDF, кажется невероятно размытым и пикселированным, когда я увеличиваю его, тогда как окружающий текст на странице получается четким.
Я попытался просто сохранить изображение на диск в формате PNG/BMP/JPG, но это также, похоже, возвращает размытое изображение, так что это не проблема размеров.
using (var stream = File.Create("testChart.png"))
{
var pngExporter = new PngExporter();
pngExporter.Export(PlotModel, stream);
}
Я приложил копию PDF с этим постом, чтобы показать, что я имею в виду.
Спасибо!