You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Interop.Visio:如何获取应用未保存进度并检查UTF-8编码?

需求与问题:Visio保存前确保未保存内容UTF-8编码

背景需求

我需要在保存Visio文档前,确保所有未保存进度的内容采用UTF-8编码。原因是XML数据为UTF-8编码,插件在多语言环境下使用易引发问题。

当前事件触发实现

我通过BeforeDocumentSave事件绑定处理方法:

this.Application.BeforeDocumentSave += new Visio.EApplication_BeforeDocumentSaveEventHandler(Visio_BeforeDocumentSave);

private void Visio_BeforeDocumentSave(Visio.Document doc) //Ensure UTF-8 encodeing before save
{   
    if (!doc.Saved)
    {

    }
}

现有方案的局限

有人建议遍历所有形状和页面来检查编码,但考虑到文档规模较大,这种方式耗时过长,不适合实际使用。

核心疑问

我想知道是否可以从Visio应用中直接获取所有未保存进度对应的内容,这样至少能跳过已保存的、无需处理的安全数据。比如在BeforeDocumentSaveAs事件中:

private void Visio_BeforeDocumentSaveAs(Visio.Document doc)
{
    // doc.Saved 可以检查Visio应用中是否存在未保存进度
    // 有没有办法获取 doc.Saved 所指向的这些未保存数据?
}

欢迎任何建议,哪怕是改变我的问题解决思路。

内容的提问来源于stack exchange,提问作者DanTheMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:22:05