c# - 以编程方式在 vsdx 文件中创建/操作 visio 绘图
问题描述
我需要以编程方式部署 visio 可视化。目前我只需要添加带有以下属性的便签:大小、位置、颜色、其上的文本和文本对齐方式,但该解决方案将来应该可以扩展为更多形状。有关形状的信息存储在 google cloud firestore 数据库中。我对任何类型的解决方案和代码语言都持开放态度,但如果可能的话,运行支持 Node.js、Python 和 Go 的谷歌云功能会很棒,但我还阅读了有关支持 .NET 的信息,而且应该是如果可能的话,开源。我完全不是经验丰富的代码开发人员,因此如果您能提供一些代码示例,那就太好了。这就是我在我找到的所有文档中真正错过的内容。
据我研究,在这种情况下 Visio 2016 SDK 会很有趣。但我没有找到我需要的密切例子。Fe此链接显示如何替换形状中的文本,或者此链接显示如何添加矩形形状。但是解释很少...我用master..XML,page..XML等分析了visio文件本身,但是值的数量令人困惑。这让我想到了 SDK 将如何处理这个问题?如何定义主形状,如何格式化它们?
另一种选择是 Apose.Diagram API,但我不确定是否支持便笺。此处提供了一个示例。不幸的是,它是商业的,但如果没有其他选择,我会选择它。
谢谢你的建议!
解决方案
就像关于实际状态的信息一样:我通过手动操作 vsdx 来“解决它”。vsdx 只是一个以 .vsdx 结尾的压缩 zip 文件。如果将其重命名为 .zip,您将看到许多 xml 文件。如果您只需要放置没有相互关系的简单形状,文件 page1.xml 是一个重要的文件。在 page1.xml 中有名为 的 xml-parts,只需对这些部分进行操作和相乘即可。我还没有尝试 sdk,或者像 apose.diagram 这样的第三方解决方案,但是对于以矩形形式可视化对象的实际用例,它已经足够好了
推荐阅读
- r - 绘制ggplot2中多列的平均值
- arrays - 枚举是一种数组吗?
- c# - IServiceCollection 中的 AddScoped/Transient/Singleton 中的服务提供者是如何创建的?无法解析之前添加的服务
- ios - Flutter:声明 xcode 音频背景模式以在屏幕关闭但 ios 拒绝时保持套接字通道(颤振)运行
- python - Python:If..else.. 打印行的条件
- google-cloud-storage - 谷歌云存储的“组合对象”API 是否可以通过 C# 客户端库获得?
- c# - 文件系统部署到多台服务器
- ios - 无法在 UITextField 中移动光标
- javascript - Django 自定义自动生成的输入按钮
- linux - 如何删除 bash 脚本中的多个字符?