2012-02-17 59 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