Formen erstellen, aktualisieren, anordnen und automatisch anpassen

Erstellen einer Diagram

Mit Aspose.Diagram for .NET können Sie Microsoft Visio Diagramme aus Ihren eigenen Anwendungen lesen und erstellen, ohne Microsoft Office Automatisierung. Der erste Schritt beim Erstellen neuer Dokumente ist das Erstellen einer diagram. DannFügen Sie Formen und Verbinder hinzuum die diagram aufzubauen. Verwenden Sie den Standardkonstruktor vonDiagram Klasse, um eine neue diagram zu erstellen.

Programmierbeispiel

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Initialize a new Visio
Diagram diagram = new Diagram();
dataDir = dataDir + "CreateDiagram_out.vsdx";
// Save in the VSDX format
diagram.Save(dataDir, SaveFileFormat.VSDX);

Layoutformen im Flussdiagrammstil

Bei bestimmten Arten von verbundenen Zeichnungen, wie z. B. Flussdiagrammen und Netzwerkdiagrammen, können Sie die verwendenLayoutformen Funktion zum automatischen Positionieren von Formen. Die automatische Positionierung ist schneller als das manuelle Ziehen jeder Form an eine neue Position.

Wenn Sie beispielsweise ein großes Flussdiagramm aktualisieren, um einen neuen Prozess einzuschließen, können Sie die Shapes, aus denen der Prozess besteht, hinzufügen und verbinden und dann die Layoutfunktion verwenden, um die aktualisierte Zeichnung automatisch zu gestalten.

Die Layout-Methode, verfügbar gemacht durch dieDiagram Die Klasse legt die Formen an und/oder leitet die Anschlüsse auf allen Seiten von diagram um. Diese Methode akzeptiert eineLayoutOptionenObjekt als Argument. Verwenden Sie die verschiedenen Eigenschaften, die von der LayoutOptions-Klasse verfügbar gemacht werden, um Formen automatisch anzuordnen.

Das Bild unten zeigt den diagram, der von den Codeausschnitten in diesem Artikel geladen wird, bevor das automatische Layout angewendet wird. Die Codeschnipsel zeigen, wie man sich bewirbtFlussdiagramm-Layouts undkompakte Baumlayouts.

Die Quelle diagram.

todo: Bild_alt_Text

Die Code-Snippets in diesem Artikel verwenden die Quelle diagram und wenden mehrere Arten von automatischem Layout darauf an, wobei sie jeweils in einer separaten Datei gespeichert werden.

Layoutformen von unten nach oben

todo: Bild_alt_Text

Layoutformen von oben nach unten

todo: Bild_alt_Text

Layoutformen von links nach rechts

todo: Bild_alt_Text

Layoutformen von rechts nach links

todo: Bild_alt_Text

So gestalten Sie Formen im Flussdiagrammstil:
  1. Erstellen Sie eine Instanz der Klasse Diagram.
  2. Erstellen Sie eine Instanz der LayoutOptions-Klasse und legen Sie die Eigenschaften für den Flussdiagrammstil fest.
  3. Rufen Sie die Layout-Methode der Klasse Diagram auf, indem Sie LayoutOptions übergeben.
  4. Rufen Sie die Save-Methode der Klasse Diagram auf, um die Zeichnung Visio zu schreiben.

Programmierbeispiel im Flussdiagrammstil

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
// Load an existing Visio diagram
string fileName = "LayOutShapesInFlowchartStyle.vdx";
Diagram diagram = new Diagram(dataDir + fileName);
// Set layout options
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.LayoutStyle = LayoutStyle.FlowChart;
flowChartOptions.SpaceShapes = 1f;
flowChartOptions.EnlargePage = true;
// Set layout direction as BottomToTop and then save
flowChartOptions.Direction = LayoutDirection.BottomToTop;
diagram.Layout(flowChartOptions);
diagram.Save(dataDir + "sample_btm_top_out.vdx", SaveFileFormat.VDX);
// Set layout direction as TopToBottom and then save
diagram = new Diagram(dataDir + fileName);
flowChartOptions.Direction = LayoutDirection.TopToBottom;
diagram.Layout(flowChartOptions);
diagram.Save(dataDir + "sample_top_btm_out.vdx", SaveFileFormat.VDX);
// Set layout direction as LeftToRight and then save
diagram = new Diagram(dataDir + fileName);
flowChartOptions.Direction = LayoutDirection.LeftToRight;
diagram.Layout(flowChartOptions);
diagram.Save(dataDir + "sample_left_right_out.vdx", SaveFileFormat.VDX);
// Set layout direction as RightToLeft and then save
diagram = new Diagram(dataDir + fileName);
flowChartOptions.Direction = LayoutDirection.RightToLeft;
diagram.Layout(flowChartOptions);
diagram.Save(dataDir + "sample_right_left_out.vdx", SaveFileFormat.VDX);

Anordnen von Formen im kompakten Baumstil

Der kompakte Baumlayoutstil versucht, eine Baumstruktur aufzubauen. Es verwendet die gleiche Eingabedatei wie dieBeispiel obenund speichert in mehreren verschiedenen kompakten Baumstilen.

Kompaktes Baumlayout - unten und rechts

todo: Bild_alt_Text

Kompaktes Baumlayout - unten und links

todo: Bild_alt_Text

Kompaktes Baumlayout - rechts und unten

todo: Bild_alt_Text

Kompaktes Baumlayout - links und unten

todo: Bild_alt_Text

Formen im kompakten Baumstil anordnen:
  1. Erstellen Sie eine Instanz derDiagram Klasse.
  2. Erstellen Sie eine Instanz der LayoutOptions-Klasse, und legen Sie kompakte Baumstileigenschaften fest.
  3. Rufen Sie die Layout-Methode der Klasse Diagram auf, indem Sie LayoutOptions übergeben.
  4. Rufen Sie die Save-Methode der Klasse Diagram auf, um die Datei Visio zu schreiben.

Kompaktes Programmierbeispiel im Baumstil

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
string fileName = "LayOutShapesInCompactTreeStyle.vdx";
// Load an existing Visio diagram
Diagram diagram = new Diagram(dataDir + fileName);
// Set layout options
LayoutOptions compactTreeOptions = new LayoutOptions();
compactTreeOptions.LayoutStyle = LayoutStyle.CompactTree;
compactTreeOptions.EnlargePage = true;
// Set layout direction as DownThenRight and then save
compactTreeOptions.Direction = LayoutDirection.DownThenRight;
diagram.Layout(compactTreeOptions);
diagram.Save(dataDir + "sample_down_right.vdx", SaveFileFormat.VDX);
// Set layout direction as DownThenLeft and then save
diagram = new Diagram(dataDir + fileName);
compactTreeOptions.Direction = LayoutDirection.DownThenLeft;
diagram.Layout(compactTreeOptions);
diagram.Save(dataDir + "sample_down_left.vdx", SaveFileFormat.VDX);
// Set layout direction as RightThenDown and then save
diagram = new Diagram(dataDir + fileName);
compactTreeOptions.Direction = LayoutDirection.RightThenDown;
diagram.Layout(compactTreeOptions);
diagram.Save(dataDir + "sample_right_down.vdx", SaveFileFormat.VDX);
// Set layout direction as LeftThenDown and then save
diagram = new Diagram(dataDir + fileName);
compactTreeOptions.Direction = LayoutDirection.LeftThenDown;
diagram.Layout(compactTreeOptions);
diagram.Save(dataDir + "sample_left_down.vdx", SaveFileFormat.VDX);

Passen Sie die Visio Diagram automatisch an

Aspose.Diagram API unterstützt die automatische Anpassung der Zeichnung Visio. Diese Feature-Operation hilft, äußere Formen innerhalb der Visio-Seitenbegrenzung zu bringen. Aspose.Diagram for .NET API hat dieDiagram Klasse, die eine Visio-Zeichnung darstellt. DasDiagrammSaveOptions -Klasse macht die AutoFitPageToDrawingContent-Eigenschaft verfügbar, um die Visio-Zeichnung automatisch anzupassen.

Dieses Beispiel funktioniert wie folgt:

  1. Erstellen Sie ein Objekt der Klasse Diagram.
  2. Erstellen Sie ein Objekt der Klasse DiagramSaveOptions und übergeben Sie das resultierende Dateiformat.
  3. Legen Sie die AutoFitPageToDrawingContent-Eigenschaft des DiagramSaveOptions-Objekts fest.
  4. Rufen Sie die Save-Methode des Klassenobjekts Diagram auf und übergeben Sie auch den vollständigen Dateipfad und das DiagramSaveOptions-Objekt.

Programmierbeispiel für automatische Anpassung

Der folgende Beispielcode zeigt, wie Formen in Visio diagram automatisch angepasst werden.

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
// Load a Visio diagram
Diagram diagram = new Diagram(dataDir + "BFlowcht.vsdx");
// Use saving options
DiagramSaveOptions options = new DiagramSaveOptions(SaveFileFormat.VSDX);
// Set Auto fit page property
options.AutoFitPageToDrawingContent = true;
// Save Visio diagram
diagram.Save(dataDir + "AutoFitShapesInVisio_out.vsdx", options);

Arbeiten mit VBA-Projekt

Ändern Sie den VBA-Modulcode in Visio Diagram

Dieser Artikel zeigt, wie Sie einen VBA-Modulcode automatisch mit Aspose.Diagram for .NET ändern. Wir haben hinzugefügtVbaModul, VbaModuleCollection, VbaProjekt, VbaProjectReference undVbaProjectReferenceCollection Klassen. Diese Klassen helfen dabei, die Kontrolle über das VBA-Projekt zu erlangen. Entwickler können VBA-Modulcode extrahieren und ändern.

Programmierbeispiel für VBA-Modulcode ändern

Bitte überprüfen Sie dieses Codebeispiel:

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
// Load an existing Visio diagram
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdm", LoadFileFormat.VSDM);
// Extract VBA project
Aspose.Diagram.Vba.VbaProject v = diagram.VbaProject;
// Iterate through the modules and modify VBA module code
foreach (VbaModule module in diagram.VbaProject.Modules)
{
string code = module.Codes;
if (code.Contains("This is test message."))
code = code.Replace("This is test message.", "This is Aspose.Diagram message.");
module.Codes = code;
}
// Save the Visio diagram
diagram.Save(dataDir + "ModifyVBAModule_out.vssm", SaveFileFormat.VSSM);

Entfernen Sie alle Makros aus Visio Diagram

Aspose.Diagram for .NET ermöglicht Entwicklern das Entfernen aller Makros aus Visio diagram. Die VbProjectData-Eigenschaft, die von derDiagram Klasse können Sie alle Makros aus der Zeichnung Visio entfernen.

Programmierbeispiel für alle Makros entfernen

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Diagrams();
// Load a Visio diagram
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");
// Remove all macros
diagram.VbProjectData = null;
// Save diagram
diagram.Save(dataDir + "RemoveMacrosFromVisio_out.vsdx", SaveFileFormat.VSDX);

Erstellen eines neuen Diagram mit VSTO

Aspose.Diagram for .NETermöglicht Entwicklern das Erstellen und Arbeiten mit Microsoft Office Visio Diagrammen und die Integration von Funktionen in ihre Softwareanwendungen. Es gibt andere Möglichkeiten, mit Visio-Dateien zu arbeiten, am häufigsten Microsoft-Automatisierung. Leider hat das einige Einschränkungen. Aspose.Diagram ist leistungsstark und schnell und arbeitet selbstständig ohne Microsoft Office Installation.

Dieser Migrationsartikel zeigt die Verwendung von firstVSTO und dannAspose.Diagram for .NET um eine neue diagram zu erstellen und ihr einige Formen hinzuzufügen. Sie werden feststellen, dass der Code Aspose.Diagram kürzer als der VSTO-Code ist. Sie können den Code gerne als Grundlage für Ihre eigene Entwicklung verwenden und ihn Ihren Anforderungen entsprechend erweitern. Mit VSTO können Sie mit Microsoft-Visio-Dateien programmieren. So erstellen Sie eine neue diagram:

  1. Erstellen Sie ein Visio-Anwendungsobjekt.
  2. Machen Sie das Anwendungsobjekt unsichtbar.
  3. Erstellen Sie eine leere diagram.
  4. Fügen Sie Formen aus Visio-Mastern (Schablonen) hinzu.
  5. Speichern Sie die Datei als VDX.

Neues Diagram mit VSTO-Programmierbeispiel erstellen

Beispiel:

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
Visio.Application vdxApp = null;
Visio.Document vdxDoc = null;
try
{
// Create Visio Application Object
vdxApp = new Visio.Application();
// Make Visio Application Invisible
vdxApp.Visible = false;
// Create a new diagram
vdxDoc = vdxApp.Documents.Add("");
// Load Visio Stencil
Visio.Documents visioDocs = vdxApp.Documents;
Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss",
(short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenHidden);
// Set active page
Visio.Page visioPage = vdxApp.ActivePage;
// Add a new rectangle shape
Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle");
Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5);
visioRectShape.Text = @"Rectangle text.";
// Add a new star shape
Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"Star 7");
Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5);
visioStarShape.Text = @"Star text.";
// Add a new hexagon shape
Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon");
Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5);
visioHexagonShape.Text = @"Hexagon text.";
// Save diagram as VDX
vdxDoc.SaveAs(dataDir + "CreatingDiagramWithVSTO_out.vdx");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http:// Www.aspose.com/purchase/default.aspx.");
}

Erstellen einer neuen Diagram mit Aspose.Diagram for .NET

Mit Aspose.Diagram API benötigen Entwickler keine Microsoft Office Visio Installation auf der Maschine und können unabhängig von Microsoft Office Automation arbeiten.

So erstellen Sie eine neue diagram:

  1. Erstellen Sie eine leere diagram.
  2. Fügen Sie Formen aus Visio-Mastern (Schablonen) hinzu.
  3. Speichern Sie die Datei als VDX.

Neu Diagram mit Aspose.Diagram for .NET Programmierbeispiel

Beispiel:

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
// Create a new diagram
Diagram diagram = new Diagram(dataDir + "Basic Shapes.vss");
// Add a new rectangle shape
long shapeId = diagram.AddShape(4.25, 5.5, 2, 1, @"Rectangle", 0);
Shape shape = diagram.Pages[0].Shapes.GetShape(shapeId);
shape.Text.Value.Add(new Txt(@"Rectangle text."));
// Add a new star shape
shapeId = diagram.AddShape(2.0, 5.5, 2, 2, @"Star 7", 0);
shape = diagram.Pages[0].Shapes.GetShape(shapeId);
shape.Text.Value.Add(new Txt(@"Star text."));
// Add a new hexagon shape
shapeId = diagram.AddShape(7.0, 5.5, 2, 2, @"Hexagon", 0);
shape = diagram.Pages[0].Shapes.GetShape(shapeId);
shape.Text.Value.Add(new Txt(@"Hexagon text."));
// Save the new diagram
diagram.Save(dataDir + "CreatingDiagramWithAspose_out.vdx", SaveFileFormat.VDX);

Shape-Eigenschaften aktualisieren

Bei der Arbeit mit Microsoft Visio Diagrammen können Benutzer Formattribute aktualisieren, einschließlich Text, Stil, Position, Höhe und Breite. Als Softwareentwickler, der mit Visio-Dateien arbeitet, werden Sie aufgefordert, dies programmgesteuert zu tun. Die gute Nachricht ist, dass es möglich ist, entweder die Mechanismen zum Programmieren mit Visio-Dateien zu verwenden, die Microsoft bereitstellt, VSTO, oder zu verwendenAspose.Diagram for .NET.

Das folgende Thema zeigt die VerwendungVSTO undAspose.Diagram Formeigenschaften zu aktualisieren. Die folgenden Codeausschnitte zeigen, wie Formeigenschaften für VSTO und Aspose.Diagram for .NET aktualisiert werden. Sie können den Code gerne verwenden und auf Ihre spezielle Situation anwenden.

Aktualisieren von Shape-Eigenschaften mit VSTO

Mit VSTO können Sie mit Microsoft Visio-Dateien programmieren. So aktualisieren Sie Formeigenschaften:

  1. Erstellen Sie ein Visio-Anwendungsobjekt.
  2. Machen Sie das Anwendungsobjekt unsichtbar.
  3. Öffnen Sie eine vorhandene Visio VSD-Datei.
  4. Finden Sie die gewünschte Form.
  5. Aktualisieren Sie die Formeigenschaften (Text, Textstil, Position und Größe).
  6. Speichern Sie die Datei als VDX.

Aktualisieren von Shape-Eigenschaften mit VSTO-Programmierbeispiel

Beispiel:

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
Visio.Application vsdApp = null;
Visio.Document vsdDoc = null;
try
{
// Create Visio Application Object
vsdApp = new Visio.Application();
// Make Visio Application Invisible
vsdApp.Visible = false;
// Create a document object and load a diagram
vsdDoc = vsdApp.Documents.Open(dataDir + "Drawing1.vsd");
// Create page object to get required page
Visio.Page page = vsdApp.ActivePage;
// Create shape object to get required shape
Visio.Shape shape = page.Shapes["Process1"];
// Set shape text and text style
shape.Text = "Hello World";
shape.TextStyle = "CustomStyle1";
// Set shape's position
shape.get_Cells("PinX").ResultIU = 5;
shape.get_Cells("PinY").ResultIU = 5;
// Set shape's height and width
shape.get_Cells("Height").ResultIU = 2;
shape.get_Cells("Width").ResultIU = 3;
// Save file as VDX
vsdDoc.SaveAs(dataDir + "Drawing1.vdx");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http:// Www.aspose.com/purchase/default.aspx.");
}

Aktualisieren der Shape-Eigenschaften mit Aspose.Diagram for .NET

Mit Aspose.Diagram API benötigen Entwickler keine Microsoft Office Visio auf der Maschine und können unabhängig von Microsoft Office Automation arbeiten.

So aktualisieren Sie Formeigenschaften mit Aspose.Diagram for .NET:

  1. Öffnen Sie eine vorhandene Visio VSD-Datei.
  2. Finden Sie die gewünschte Form.
  3. Aktualisieren Sie die Formeigenschaften (Text, Textstil, Position und Größe).
  4. Speichern Sie die Datei als VDX.

Aktualisieren von Shape-Eigenschaften mit Aspose.Diagram for .NET Programmierbeispiel

Beispiel:

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
try
{
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
// Save the uploaded file as PDF
Diagram diagram = new Diagram(dataDir + "Drawing1.vsd");
// Find a particular shape and update its properties
foreach (Aspose.Diagram.Shape shape in diagram.Pages[0].Shapes)
{
if (shape.Name.ToLower() == "process1")
{
shape.Text.Value.Clear();
shape.Text.Value.Add(new Txt("Hello World"));
// Find custom style sheet and set as shape's text style
foreach (StyleSheet styleSheet in diagram.StyleSheets)
{
if (styleSheet.Name == "CustomStyle1")
{
shape.TextStyle = styleSheet;
}
}
// Set horizontal and vertical position of the shape
shape.XForm.PinX.Value = 5;
shape.XForm.PinY.Value = 5;
// Set height and width of the shape
shape.XForm.Height.Value = 2;
shape.XForm.Width.Value = 3;
}
}
// Save shape as VDX
diagram.Save(dataDir + "UpdateShapePropsWithAspose_out.vdx", SaveFileFormat.VDX);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}