3

我正在用 C# .NET 4 编写一个图表应用程序,并且需要图形输出可以在 Microsoft Excel 中进行编辑。我所知道的用于 MS Office 的仅有的 2 种矢量格式 - CGM 和 WMF。我使用 OpenTK 作为它的 OpenGL 包装器,所以我拥有所有的顶点。

我还查看了 .NET 4 中的 Metafile,但它似乎主要用于读取 WMF 文件。它仍然输出到 PNG。

我几乎已经对CMG放弃了希望,真的没有太多信息可以找到。对于 Windows 元文件格式,我找到了这个链接,所以问题是:有没有人有我已经可以使用的开源库(最好是 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 和 Google 的其余帖子似乎并不关心它是矢量格式还是光栅格式,所以我希望能得到一些额外的帮助。谢谢。

4

1 回答 1

10

查看 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);
于 2012-03-04T19:13:59.580 回答