以编程方式以vsd格式保存visio 2016图表

问题描述 投票:0回答:1

我正在从Visio 2010迁移到Visio 2016绘图控件。当我在主Visio应用程序外部将新文件另存为.vsd时,将引发异常。但是,文件保存在给定的位置。我将文件另存为.vsd,以实现向后兼容。这将影响重新加载/打开相同的新文件,并引发异常。下面的代码片段与Visio 2010配合良好。

BOOL Doc::SaveAs(vbPath)
{
    success = TRUE;

    if (!SUCCEEDED(CVisioDocument::SaveAsEx(vbPath, visSaveAsWS)))   //SaveAsEx return 0
    {
        success = FALSE;
    }

    // Now do a save to get the drawing on the Most Recently Used list
    short saveRc=0;
    if (!SUCCEEDED(CVisioDocument::Save(&saveRc)))  //Get exception here in Save method
        ASSERT(0);

    return success;
}

CVisioDocument :: SaveAsEx(vbPath,visSaveAsWS)返回“ 0”。这意味着成功保存了新文档。但是,在我尝试之后,CVisioDocument :: Save(&saveRc)会引发异常,因为在保存文档之前,Save方法会生成错误。另一方面,我可以毫无例外地将新文档保存在主Visio应用程序中。该文件正在主Visio应用程序中打开。

所以,您能帮我摆脱上述问题吗?

[我发现有人在Visio 2013中也存在类似的问题,http://visguy.com/vgforum/index.php?topic=4819.0

visual-c++ mfc visio office-2016
1个回答
0
投票

Visio的文件格式在2013年更改为.vsdx软件包格式,因此从2013年开始保存是一条路。

2013+将以兼容模式打开二进制(.vsd)和平面xml(.vdx)文件,但仅保存为新的包(.vsdx)格式。

为了获得与Visio 2010的向后兼容性,可以安装“ Visio兼容性包”,使2010能够打开较新的程序包格式文件:

https://www.microsoft.com/en-us/download/details.aspx?id=39640

© www.soinside.com 2019 - 2024. All rights reserved.