إنشاء مخطط انسيابي جافا

يمكن أن تكون المخططات الانسيابية مفيدة في فهم الخوارزميات خطوة بخطوة لتصميم التمثيل البياني لسير العمل والعمليات. في بعض السيناريوهات ، قد تحتاج إلى إنشاء مخططات انسيابية لحل المشكلات. تتناول هذه المقالة كيفية إنشاء مخطط انسيابي برمجيًا في Java.

قم بتثبيت Java API لعمل مخطط انسيابي

يمكنك عمل مخططات انسيابية باستخدام Aspose.Diagram for Java API. وهو يدعم إنشاء أو تحرير ملفات Visio بتنسيق VSD و VSDX و التنسيقات المدعومة. يمكنك بسهولة تثبيت API عن طريق تنزيل ملف JAR من قسم الإصدارات الجديدة ، أو باستخدام مواصفات Maven التالية:

مخزن:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

الاعتماد:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.1</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

إنشاء مخطط انسيابي برمجيًا في Java

يمكنك عمل مخطط انسيابي لشرح خطوات التسلسل. تحتاج إلى اتباع الخطوات أدناه لعمل مخططات انسيابية:

  1. أولاً ، قم بإنشاء مخطط لإنشاء الرسم التخطيطي.
  2. ثانيًا ، قم بتحميل ملف VSS كملف رئيسي لإضافة الأشكال. باستخدام فئة الرسم البياني.
  3. إضافة الأشكال والموصلات من المخطط.
  4. تعيين تخطيط لمخطط المخطط الانسيابي.
  5. أخيرًا ، اكتب ملف الإخراج باستخدام مخطط انسيابي بتنسيق VSDX باستخدام طريقة حفظ.

يوضح نموذج الكود أدناه كيفية عمل مخطط انسيابي برمجيًا في Java:

// قم بإنشاء رسم تخطيطي جديد 
int pageNumber = 0;
String rectangleMaster = "Process", decisionMaster = "Decision", connectorMaster = "Dynamic connector"; 

Diagram diagram = new Diagram("XANFLOWCHARTNEW.vss"); 

double width = 1, height = 1, pinX = 4, pinY = 10; 
long process1 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0); 
Shape processShape1 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process1); 

processShape1.getText().getValue().add(new Txt("PROCESS")); 
processShape1.setName("PROCESS"); 
processShape1.getXForm().getLocPinX().getUfe().setF("Width*0.5"); 
processShape1.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 

long decision1 = diagram.addShape(pinX, pinY, width, height, decisionMaster, 0);
Shape decisionShape1 = diagram.getPages().getPage(pageNumber).getShapes().getShape(decision1);

decisionShape1.getText().getValue().add(new Txt("DECISION")); 
decisionShape1.setName("DECISION"); 
decisionShape1.getXForm().getLocPinX().getUfe().setF("Width*0.5"); 
decisionShape1.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process2 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0); 
Shape processShape2 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process2);

processShape2.getText().getValue().add(new Txt("PROCESS")); 
processShape2.setName("PROCESS");
processShape2.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape2.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process3 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0);
Shape processShape3 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process3);

processShape3.getText().getValue().add(new Txt("PROCESS")); 
processShape3.setName("PROCESS");
processShape3.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape3.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process4 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0);
Shape processShape4 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process4);

processShape4.getText().getValue().add(new Txt("PROCESS")); 
processShape4.setName("PROCESS");
processShape4.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape4.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

long connecterId = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process1, ConnectionPointPlace.BOTTOM, 
        decision1, ConnectionPointPlace.TOP, connecterId); 

long connecterId1 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(decision1, ConnectionPointPlace.BOTTOM,
        process2, ConnectionPointPlace.TOP, connecterId1); 

long connecterId2 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process2, ConnectionPointPlace.BOTTOM,
        process3, ConnectionPointPlace.TOP, connecterId2); 

long connecterId3 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process3, ConnectionPointPlace.BOTTOM,
        process4, ConnectionPointPlace.TOP, connecterId3); 

long connecterId4 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(decision1, ConnectionPointPlace.RIGHT,
        process4, ConnectionPointPlace.TOP, connecterId4);

// تعيين خيارات التخطيط التلقائي
LayoutOptions layoutOptions = new LayoutOptions();

// طريقة 
layoutOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
layoutOptions.setDirection(LayoutDirection.BOTTOM_TO_TOP);
diagram.layout(layoutOptions);

DiagramSaveOptions options = new DiagramSaveOptions(SaveFileFormat.VSDX);
diagram.save("sample.vsdx", options);

معاينة مخطط تدفق إخراج العينة

صانع مخطط انسيابي جافا

علاوة على ذلك ، قد ترغب في تنزيل ملفات الإدخال والإخراج للتحقق من هذه الميزة.

احصل على ترخيص API مجاني

يمكنك تقييم جميع ميزات API دون أي قيود من خلال طلب ترخيص مجاني مؤقت.

استنتاج

في الختام ، لقد تعلمت كيفية إنشاء أو إنشاء مخططات انسيابية برمجيًا باستخدام Java. يمكنك تخصيص وتغيير اتجاه أو أشكال المخطط الانسيابي وفقًا لمتطلباتك. لذلك يمكنك بسهولة تضمين هذه الميزة باستخدام استدعاءات API من داخل تطبيق Java الخاص بك. علاوة على ذلك ، يمكنك زيارة API التوثيق للتحقق من العديد من الميزات الأخرى لواجهة برمجة التطبيقات. يمكنك طرح أي من أسئلتك من خلال التواصل على المنتدى.

أنظر أيضا