【问题标题】:Save visio 2013 diagram in the vsd format以 vsd 格式保存 visio 2013 图表
【发布时间】:2014-04-24 15:22:41
【问题描述】:

如何在c#visio control中使用visio 2013将图表保存为vsd格式?

我正在使用以下代码:

string filename = String.Format("{0}.vsd", Guid.NewGuid());
visioControl1.Document.SaveAs(temppath + filename); //Error!

这在 Visio 2003-2010 下运行良好,但在 Visio 2013 中会引发“找不到文件”异常。 如果我在第一行将扩展名更改为“vsdx” - 又可以了。但是我必须支持所有的 Visio 版本。

【问题讨论】:

  • 我认为将扩展名更改为 .vsd 不一定会更改文件格式。您需要让 Visio Control 以正确的格式保存文档,而不仅仅是使用不同的文件扩展名。
  • 是的,这就是我的问题 - 怎么做?我的代码是为旧版本编写的,所以它可以工作。作为一个例子,我展示了 vsdx 现在是正确的格式。

标签: c# visio visio2013


【解决方案1】:

Visio API 中存在一个已知错误: Visio 2013 的 Visio 控件无法保存为 VSD。它会表现出各种奇怪的行为。 为了解决这个问题,在 Visio 2013 下,您必须保存为 vsdx 并使用不可见的 Visio 应用程序实例保存为 vsd:

  • 另存为 vsdx
  • 复制 vsdx
  • 启动一个新的不可见 Visio 应用程序对象
  • 使用隐形应用打开 vsdx 的副本
  • 使用隐形应用另存为 vsd
  • (删除步骤 1 / 2 中保存的 vsdx 文件)

要确定安装的 Visio 版本: VisioVersion = Convert.ToInt32(document.Application.Version.Replace(".", ",").Replace(",0", "")) 如果 VisioVersion >= 15 -> Visio 2013

另请注意:要保存为 vsd / vsdx,您必须使用: document.SaveEx insted of document.Save

要创建不可见 Visio 应用的实例,请参考: Microsoft.Office.Interop.Visio.InvisibleApp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多