2012-02-17 55 views
2

我正在C#.NET 4中編寫圖解應用程序,並且需要在Microsoft Excel中編輯圖形輸出。我只知道MS Office的兩種矢量格式 - CGM和WMF。我爲OpenGL封裝使用OpenTK,所以我擁有所有的頂點。用於CGM或WMF矢量格式輸出的C#庫

我也看過Metafile in .NET 4,但它似乎主要是用於閱讀WMF文件。它仍然輸出到PNG。

我幾乎已經放棄了對CMG的希望,真的沒有太多的信息可以找到。對於Windows圖元文件格式,我發現this link所以問題是:有沒有人有我可以使用的開源庫(最好是C#)?

因爲我是如此糟糕,在這一點,我需要的東西容易使用,如:

wmf = new Wmf(); 
wmf.addLine(x, y); 
wmf.addRectangle(x, y, w, h); 
wmf.addEllipse(x, y, radiusx, radiusy); 
wmf.save("welldone.wmf"); 

職位周圍SO和谷歌似乎並不關心,如果它是矢量或光柵格式,所以我的休息希望得到一些額外的幫助。謝謝。

回答

9

退房的WMF庫:http://wmf.codeplex.com/

var wmf = new WmfDocument(); 
wmf.Width = 1000; 
wmf.Height = 1000; 
wmf.Format.Unit = 288; 
wmf.AddPolyFillMode(PolyFillMode.WINDING); 
wmf.AddCreateBrushIndirect(Color.Blue, BrushStyle.BS_SOLID); 
wmf.AddSelectObject(0); 
wmf.AddCreatePenIndirect(Color.Black, PenStyle.PS_SOLID, 1); 
wmf.AddSelectObject(1); 

wmf.AddLine(Point start, Point end); 
wmf.AddRectangle(x, y, width, height); 
wmf.AddEllipse(x, y, width, height); 

wmf.AddDeleteObject(0); 
wmf.AddDeleteObject(1); 
wmf.Save(path); 
+0

哇感謝。及時的幫助。但是你是否創建了這個賬戶來幫助我們處理WMF問題?將檢查出來,然後回來標記爲答案,如果它的工作。再次感謝。 – Jake 2012-03-05 01:37:27

+1

感謝您的工作。真的很容易延伸。我爲線條,移動,弧線和橢圓添加了額外的記錄。您是否有興趣將其添加到源代碼中? – Jake 2012-03-05 07:18:54

+0

其實我自己正在尋找解決方案,然後決定建立一個新的庫。你的問題幫助我決定代碼流應該如何。感謝您的額外記錄,已被CodePlex接受。 – 2012-03-05 12:15:09