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
相关产品推荐
相关产品推荐

