1. 产品
  2.   图表
  3.   C++
  4.   EXDVisio
 
  

开源 C++ Visio 图表库

通过开源免费 C++ 图表库创建、编辑、查看、读取和操作 Visio 绘图。

EXDVisio 是一个开源 C++ 库,它提供了一组用于可视化和操作复杂数据结构的强大工具。该库包含与矢量绘制、修改 SVG、类似 Visio 的 GUI、流程图绘制、流程图、矢量、图形编辑、打印、SVG 导入、SVG 导出、DXF 导入、Visio 样式多页设计支持、复合文本编辑器支持、DXF 导出等相关的几个重要功能。

该库非常灵活且易于使用,使其成为各种应用的理想选择,包括科学可视化、数据分析和计算机图形学。该库支持复杂形式的几何运算,例如相交、相位、减法等。该库包含用于处理画布上的图形的高级功能,例如直接旋转、缩放、移动、变形、扭曲和其他高级操作。该库由意大利萨勒诺大学的 EXDS 研究小组开发,并根据 GNU 通用公共许可证发布。

EXDVisio 具有高度可定制性,允许软件开发人员轻松修改和扩展其功能以满足他们的特定需求。该库支持流行的文件格式,例如 OBJ、STL、XML、ArcGIS,以及许多用于科学数据的专用格式,例如 DXF、VTK 和 HDF5。它允许软件开发人员将他们的绘图导出为 EMF、PNG、BMP、JPEG、PDF、SVG 和其他文件格式。此外,API 还包括许多高级渲染技术,例如光线追踪和环境光遮蔽,这些技术允许创建高质量、逼真的图像。

Previous Next

开始使用 EXDVisio

安装 EXDVisio 的推荐方法是使用 GitHub。从项目网站或 GitHub 存储库下载库的源代码。请使用以下命令顺利安装。

通过 git 命令安装 EXDVisio

git clone https://github.com/jackonlyone1/EXDVisio.git

通过 C++ API 生成 Visio 绘图

开源 EXDVisio 库使软件开发人员能够在自己的 C++ 应用程序中使用 Visio 绘图。该库包含与 Visio 绘图管理相关的几个重要功能,例如从头开始创建新绘图、加载现有绘图、设置背景和前景、向绘图添加元素(线条、圆形、文本、矩形)、形状缩放、旋转元素等等。以下示例演示了如何使用 C++ 中的 EXDVisio 库创建简单的 DXF 绘图。​​

如何通过 C++ 库创建简单的 DXF 绘图?

#include "visio.h"

int main()
{
    // Initialize Visio object
    Visio visio;

    // Create a new drawing
    visio.createDrawing();

    // Add a line to the drawing
    visio.addLine(0, 0, 100, 100);

    // Add a circle to the drawing
    visio.addCircle(50, 50, 25);

    // Add some text to the drawing
    visio.addText("Hello, world!", 50, 75);

    // Save the drawing in DXF format
    visio.saveDrawing("example.dxf");

    return 0;
}

通过 C++ API 进行 Visio 绘图转换

开源 EXDVisio 库是一种非常有效的解决方案,可用于在自己的 C++ 应用程序中加载和转换 Microsoft Visio 绘图为各种文件格式。它允许用户读取和写入 Microsoft Visio 二进制文件 (VSD 和 VDX)。要将 Visio 绘图转换为其他格式,您可以使用 EXDVisio 从 Visio 文档中提取必要的信息,然后使用另一个库创建输出格式。该库支持将 Visio 绘图文件转换为各种其他文件格式,例如 DXF、EMF、PNG、BMP、JPEG、PDF、SVG 和其他文件格式。

通过 C++ 库将 Visio 绘图转换为 SVG

#include 

int main() {
  // Load Visio drawing into memory
  EXDDocument visioDoc;
  visioDoc.load("mydrawing.vsd");

  // Create SVG Document
  EXDSVGDocument svgDoc;

  // Traverse Visio Document and extract information
  for (int i = 1; i <= visioDoc.getPages(); i++) {
    EXDPage page = visioDoc.getPage(i);
    for (int j = 1; j <= page.getShapes(); j++) {
      EXDShape shape = page.getShape(j);
      // Extract shape information and generate SVG elements in svgDoc
    }
  }

  // Save SVG Document to file
  svgDoc.saveToFile("mysvg.svg");

  return 0;
}
 中国人