我正在编写一款用于测量数据可视化的软件。为此,我使用 System.Windows.Forms.DataVisualization.Charting.Chart 并且我知道我可以通过 chartObj.SaveImage 获取显示的图像以将其存储到文件中。
我的软件应该有一个 PDF 导出,其中应该包含图片。为此,我正在使用 iTextSharp。同样,我确实知道如何通过 iTextSharp.text.Image.GetInstance 将我存储在文件中的图片放入 PDF。
所以现在我可以拍摄图表的照片,将其放入文件(例如 .jpg 文件)并再次加载该文件以将其放入我的 PDF 中。现在我正在寻找一个很好的解决方案,将图片转换为 PDF 而无需将其存储到文件中,可能是通过 Stream 或类似的方式。我已经尝试了很长时间,但直到现在我还没有成功。我想到了类似的东西
Stream imageStream = image of chartObj;
iTextSharp.text.Image picture = iTextSharp.text.Image.GetInstance(imageStream);
据我所知,我未能将 chartObj 中的图片放入 Stream 而不是文件中。如果我有这个,我想我可以通过 iTextSharp.text.Image.GetInstance 加载流。
您可以提供任何帮助吗?我猜这并没有那么难,但我是 C# 和 iText 的新手,所以我有点卡在这里。
提前感谢您对此的每一个想法!
安娜
最佳答案
将图像保存到内存流:
using (var chartimage = new MemoryStream())
{
chart.SaveImage(chartimage, ChartImageFormat.Png);
return chartimage.GetBuffer();
}
来自: Microsoft Chart Controls to PDF with iTextSharp and ASP.NET MVC
关于c# - 如何在不写入文件的情况下将 DataVisualization.Charting.Chart 的图像转换为 iTextSharp.text.Image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582608/