2012-09-25 49 views
3

我正在寫一個用於測量數據可視化的軟件。爲此我使用System.Windows.Forms.DataVisualization.Charting.Chart,並且我知道我可以通過chartObj.SaveImage獲取顯示的圖像以將其存儲到文件中。如何在不寫入文件的情況下將DataVisualization.Charting.Chart映射到iTextSharp.text.Image?

我的軟件應該有一個PDF導出,其中應該包含圖片。爲此,我使用iTextSharp。再次,我知道如何將我已經存儲在文件中的圖片放入iTextSharp.text.Image.GetInstance的PDF中。

所以現在我可以拿圖表的圖片,把它放到一個文件(例如.jpg文件),然後重新加載該文件把它放在我的PDF。現在我正在尋找一個很好的解決方案,將圖片存入PDF而不將其存儲到文件中,也可以通過Stream或類似的東西。我已經嘗試了相當一段時間,但直到現在我還沒有成功。據我瞭解,我把從chartObj圖片分割成一個流而不是文件失敗,我想到了什麼樣

Stream imageStream = image of chartObj; 
iTextSharp.text.Image picture = iTextSharp.text.Image.GetInstance(imageStream); 

。如果我有這個,我想我可以通過iTextSharp.text.Image.GetInstance加載流。

有沒有人可以提供一些幫助?猜猜這並不困難,但我對C#和iText都很陌生,所以我只是在這裏感到困惑。

在此先感謝您的每一個想法!

安娜

回答

4

SaveImage到一個MemoryStream:

using (var chartimage = new MemoryStream()) 
    { 
    chart.SaveImage(chartimage, ChartImageFormat.Png); 
    return chartimage.GetBuffer(); 
    } 

來源: Microsoft Chart Controls to PDF with iTextSharp and ASP.NET MVC

+0

*頭*表 這就是它!非常感謝,效果很好! (認爲​​這很容易......) – anna

+0

注意:'GetBuffer'應該改爲'ToArray',因爲'GetBuffer'返回包含垃圾的整個緩衝區。 – VahidN

相關問題