将OxyPlot PlotModel导出到ReportDocument会产生模糊图像

时间:2016-02-14 20:50:59

标签: wpf pdf rdlc oxyplot reportdocument

长时间潜伏,第一次海报。

我目前正在使用一个使用OxyPlot生成图形的WPF应用程序。我希望将生成的图形导出到ReportDocument(RDLC)并使用CutePdf将其打印为PDF。我能够成功地做到这一点。

目前我采用的方法是执行以下代码片段。

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);
  }

我在这篇文章的attached a copy中显示了我的意思。

谢谢!

0 个答案:

没有答案