
Microsoft Visio 经常用于商业环境,以组织、可视化和传达复杂的工作流程,例如组织结构图、数据库模型、业务流程图。Microsoft 在发布 Visio 2013 时引入了 VSSX 格式。VSSX 是一种基于 Zip 的格式,取代了基于二进制的 VSS 格式,可供 Visio 2013 及更高版本使用。因此,为了打开、编辑和保存 VSSX 文件,我们使用 Microsoft Visio。但是,它仅适用于 Windows 平台,而 Microsoft 没有适用于 macOS 或 Linux 平台的 Visio 桌面版。因此,从可移植性的角度来看,我们可以考虑将 VSSX 文件转换为 SVG 格式,该格式具有可扩展性、SEO 友好性、可编辑性和在任何平台上的分辨率独立性等优点。此外,SVG 灵活,符合 W3C 标准,轻量级、可打印、可索引且易于压缩。
在本文中,我们将更详细地讨论以下主题
Visio 文件处理 API
Aspose.Diagram Cloud 是一个 REST API,提供创建、编辑和渲染 Visio 图表到其他流行格式的功能。此外,基于 Aspose.Diagram Cloud 的应用程序不需要任何第三方软件来处理 Microsoft Visio 图表/流程图,而是依靠自己的引擎。因此,借助这个易于使用的解决方案,您可以用更少的代码行对 Visio 文件执行复杂的操作。这种设计让您可以轻松地专注于业务需求,而不必担心内部实施的复杂性。
现在,为了进一步方便我们的客户,我们创建了特定于编程语言的 SDK,以便他们可以利用他们最喜欢的 IDE 中的 Visio 文件处理功能。为了在 .NET 应用程序中将 Visio 文件转换为 SVG 格式,请尝试使用 Aspose.Diagram Cloud SDK for .NET。
安装
使用 Cloud SDK 的第一步是安装。可以从 NuGet 或 GitHub 下载。请在终端中执行以下命令通过 NuGet 安装 SDK:
nuget install Aspose.Diagram-Cloud
或者在 NuGet 包管理器中执行以下命令:
PM> Install-Package Aspose.Diagram-Cloud

图 1:- 使用 NuGet 包管理器安装包。
Visual Studio 安装
Cloud SDK 也可以直接在 Visual Studio 解决方案中添加:
- 打开解决方案资源管理器。
- 展开项目并右键单击解决方案中的“包”文件夹。
- 选择管理 NuGet 包… 选项
- 单击浏览选项卡并搜索“Aspose.Diagram-Cloud”。
- 单击 Aspose.Diagram-Cloud 包,在右侧选项卡中选择适当的版本,然后单击添加包按钮。

图 2:- Visual Studio 2022 中的 Aspose.Diagram-Cloud。
云订阅
安装完成后,下一步是通过访问 Aspose.Cloud 仪表板 创建免费订阅帐户。订阅期间无需信用卡或其他付款详细信息。此外,在免费订阅帐户下,您最多可以执行 150 个免费文档处理请求。
因此,使用您的 GitHub 或 Google 帐户进行简单注册,或者单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板,从仪表板展开应用程序部分,然后向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

图 3:Aspose.Cloud 仪表板上的客户端凭证。
在 C# 中将 VSSX 转换为 SVG
转换过程快速而可靠,无论最终文件格式如何,都能提供高保真结果。
- 第一步是创建 DiagramApi 类的实例,同时传递 ClientID 和 ClientSecret 详细信息作为参数
- 其次,将输入的 VSSX 内容读入 FileStream 实例
- 第三,通过传递相同的 ClientID 和 Client Secret 详细信息作为参数来创建 StorageApi 类的对象
- 下一步是使用 StorageApi 的 UploadFile(…) 方法将 VSSX 文件上传到云存储
- 现在调用 DiagramApi 的 DownloadFileWithFormat(..) 方法来启动文件转换操作
- 最后,使用 File.Create 对象将结果文件保存在本地驱动器上
// 从 https://dashboard.aspose.cloud/ 获取 ClientID
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// 创建 DiagramApi 对象
DiagramApi diagramApi = new DiagramApi("client_credentials", clientID, clientSecret);
// 输入 VSSX 文件名
String inputFile = "MVPSession1SimpleTimeline.vssx";
// 生成的 SVG 文件名
String resultant = "Conveted.svg";
try
{
// 从本地驱动器读取输入 VSSX 文件
using (var inputStream = new FileStream("C:\\Users\\Downloads\\" + inputFile, FileMode.Open))
{
// 创建存储类实例
StorageApi storageApi = new StorageApi("client_credentials", clientID, clientSecret);
// 将输入 VXXS 文件上传至云存储
storageApi.UploadFile(inputFile, inputStream);
// 启动文件转换过程
var response = diagramApi.DownloadFileWithFormat(inputFile, format: "SVG", null);
if (response != null)
{
Console.WriteLine("Successfully converted VSD to SVG !");
}
// 自定义方法将结果文件保存在本地系统驱动器上
saveToDisk(response, "C:\\Users\\Downloads\\" + resultant);
}
}
catch (Exception ex)
{
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
上述示例中使用的输入 VSSX 和 SVG 文件可以从 MVPSession1SimpleTimeline.vssx 和 converted.svg 下载。

图 4:VSSX 到 SVG 转换的预览。
使用 cURL 命令将 VSSX 转换为 SVG
由于我们的云 API 基于 REST 架构,因此也可以使用 cURL 命令进行访问。但如前所述,API 仅供授权人员访问,因此我们需要根据客户端 ID 和客户端密钥详细信息创建 JWT 访问令牌。请执行以下命令来生成 JWT 访问令牌。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
一旦我们生成了 JWT 访问令牌,请使用以下 cURL 命令将文件上传到云存储。
curl -X PUT "https://api.aspose.cloud/v3.0/diagram/storage/file/MVPSession1SimpleTimeline.vssx" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: multipart/form-data" \
-d {"File":{}}
现在文件已上传到云存储,请执行以下命令进行转换并将输出保存在指定位置。
curl -X GET "https://api.aspose.cloud/v3.0/diagram/MVPSession1SimpleTimeline.vssx?format=SVG" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.svg
结论
在本文中,我们讨论了 Aspose.Diagram Cloud 将 VSSX 文件格式转换为 SVG 的功能。我们讨论了使用 C# .NET 代码以及使用 cURL 命令执行转换的步骤。我们的 SDK 是在 MIT 许可下开发的,其完整源代码可从 GitHub 下载。此外,如果您在使用 API 时遇到任何问题,请随时通过 免费支持论坛 联系我们。
相关文章
我们还建议您访问以下链接以了解更多信息