用于CGM或WMF矢量格式输出的C#库

时间:2012-02-17 06:42:13

标签: .net wmf

我正在C#.NET 4中编写一个图表应用程序,需要在Microsoft Excel中编辑图形输出。我知道MS Office的唯一两种矢量格式 - CGM和WMF。我正在使用OpenTK作为其OpenGL包装器,因此我拥有所有顶点。

我也查看了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和谷歌的其他帖子似乎并不关心它是矢量还是光栅格式,所以我希望得到一些额外的帮助。感谢。

1 个答案:

答案 0 :(得分: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);