C# .NET에서 순서도 만들기

Flowcharts은 다양한 워크플로를 나타내기 위해 생성되거나 설계되었습니다. 특정 상황에서는 다양한 상황을 관리하기 위해 플로우차트를 작성해야 할 수 있습니다. 이 문서에서는 C#에서 프로그래밍 방식으로 순서도 다이어그램을 만드는 방법을 다룹니다.

C# API를 설치하여 순서도 다이어그램 만들기

Aspose.Diagram for .NET API를 사용하여 순서도를 만들 수 있습니다. VSD, VSDX 및 기타 지원 형식의 Visio 파일 생성 또는 편집을 지원합니다. New Releases 섹션에서 DLL 파일을 다운로드하거나 다음 설치 명령과 함께 NuGet 패키지 관리자를 사용하여 API를 쉽게 설치할 수 있습니다.

PM> Install-Package Aspose.Diagram

C#에서 프로그래밍 방식으로 순서도 만들기

요구 사항에 따라 다양한 프로세스의 순서도를 만들 수 있습니다. 순서도를 생성하려면 다음 단계를 따르십시오.

  1. 먼저 다이어그램을 생성하기 위한 스키마를 생성합니다.
  2. 다이어그램 클래스를 사용하여 도형 추가를 위한 마스터를 로드합니다.
  3. 스키마에서 셰이프 및 커넥터 추가
  4. 순서도 다이어그램의 레이아웃을 설정합니다.
  5. 마지막으로 저장 방법을 사용하여 VSDX 형식의 순서도와 함께 출력 파일을 작성합니다.

다음 코드 조각은 C#에서 프로그래밍 방식으로 순서도 다이어그램을 만드는 방법을 자세히 설명합니다.

class Program
{
    static void Main(string[] args)
    {
        // 생성할 다이어그램의 스키마
        Input diagramObject = new Input()
        {
            InputRectangles = new List<InputRectangle>() {
                    new InputRectangle() {
                        Name = "A",
                        Text = "Manager"
                    },
                    new InputRectangle() {
                        Name = "B",
                        Text = "Team Leader"
                    },
                    new InputRectangle() {
                        Name = "C",
                        Text = "Team Member"
                    },
                    new InputRectangle() {
                        Name = "D",
                        Text = "Team Member"
                    },
                    new InputRectangle() {
                        Name = "E",
                        Text = "Team Member"
                    }
                },
            InputConnectors = new List<InputConnector>() {
                    new InputConnector() {
                        OriginShapeName = "A",
                        DestinationShapeName = "B"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "C"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "D"
                    },
                    new InputConnector() {
                        OriginShapeName = "B",
                        DestinationShapeName = "E"
                    }
                }
        };

        Diagram diagram = new Diagram("BasicShapes.vss");
        Page page = diagram.Pages[0];

        Dictionary<string, long> shapeNames = new Dictionary<string, long>();

        //스키마에서 셰이프 및 커넥터 추가
        foreach (var rectangle in diagramObject.InputRectangles)
        {
            Shape shape = new Shape();
            var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
            shapeNames.Add(rectangle.Name, shapeId);
            shape = page.Shapes.GetShape(shapeId);
            shape.Text.Value.Add(new Txt(rectangle.Text));
        }


        foreach (var connector in diagramObject.InputConnectors)
        {
            var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
            page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
                                            ConnectionPointPlace.Right,
                                            shapeNames[connector.DestinationShapeName],
                                            ConnectionPointPlace.Left,
                                            connectorId);
        }


        LayoutOptions layoutOptions = new LayoutOptions()
        {
            LayoutStyle = LayoutStyle.FlowChart,
            Direction = LayoutDirection.LeftToRight,
            SpaceShapes = 5,
            EnlargePage = true
        };

        diagram.Layout(layoutOptions);

        page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;

        DiagramSaveOptions saveOptions = new DiagramSaveOptions()
        {
            SaveFormat = SaveFileFormat.Vsdx,
            AutoFitPageToDrawingContent = true
        };

        diagram.Save("output.vsdx", saveOptions);
    }
}

public class Input
{
    public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
    public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
}

public class InputRectangle
{
    public string Name { get; set; }
    public string Text { get; set; }
}

public class InputConnector
{
    public string OriginShapeName { get; set; }
    public string DestinationShapeName { get; set; }
}

샘플 프로젝트 다운로드

입력 및 출력 파일과 함께 샘플 프로젝트를 다운로드할 수 있습니다.

샘플 출력 순서도 미리보기

C#에서 순서도 만들기

무료 API 라이선스 받기

임시 무료 라이선스를 요청하면 API의 모든 기능을 제한 없이 평가할 수 있습니다.

결론

이 문서에서는 C#을 사용하여 프로그래밍 방식으로 순서도를 만들거나 만드는 방법을 배웠습니다. 결정, 프로세스와 같은 다양한 모양은 물론 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽과 같은 다양한 레이아웃을 디자인할 수 있습니다. 또한 API 문서를 방문하여 API의 더 많은 기능을 배울 수 있습니다. 포럼에서 언제든지 문의해 주십시오.

또한보십시오