Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Geschäftsprozessmodell und Notation(BPMN)ist ein Standard für die Prozessmodellierung, der eine grafische Darstellung zur Spezifikation von Geschäftsprozessen in einem Arbeitsablauf bietet. bpmn-js ist eine leistungsstarke Bibliothek, die es ermöglicht, BPMN-Elementdiagramme in Webanwendungen einzubetten und dabei interaktive Funktionen sowie umfangreiche Anpassungsoptionen bietet. Entwickelt von Camunda,bpmn-jswurde auf modernen Webmodeler-Technologien aufgebaut und kann nahtlos in JavaScript-Anwendungen integriert werden. Wir werden auch sehen, wie man mit BPMN-Diagrammelementen ein PDF erstellt.IronPDF.
Interaktive Modellierung: bpmn-js ermöglicht es Benutzern, BPMN-Elemente zu erstellen, zu ändern und Diagramme interaktiv anzusehen. Die benutzerfreundliche Oberfläche unterstützt Drag-and-Drop-Funktionalität, was das Entwerfen komplexer Workflows einfach macht.
Anpassung: Die Bibliothek ist hochgradig anpassbar und ermöglicht es Entwicklern, das Aussehen und Verhalten von BPMN-Diagrammen an die Markenidentität und Anforderungen ihrer Anwendungen anzupassen.
Erweiterbarkeit: bpmn-js ist mit Blick auf Erweiterbarkeit entwickelt worden. Entwickler können die Kernfunktionalität erweitern, indem sie dem BPMN-Diagramm-Interaktionsmodell benutzerdefinierte Elemente, Eigenschaften und Verhaltensweisen hinzufügen.
Integration: Es integriert sich gut mit anderen Bibliotheken und Frameworks wie Angular und React, was die Nutzung in einer Vielzahl von Webanwendungen erleichtert.
Um mit bpmn-js zu beginnen, müssen Sie ein grundlegendes Webprojekt einrichten. Hier ist eine Schritt-für-Schritt-Anleitung zur Erstellung eines einfachen Diagramms mit bpmn-js.
Erstellen Sie zuerst ein neues Verzeichnis für Ihr Projekt und initialisieren Sie ein Node.js-Projekt mit den folgenden Befehlen:
mkdir bpmn-js-demo
cd bpmn-js-demo
npm init -y
Als Nächstes installieren Sie die bpmn-js-Bibliothek:
npm install bpmn-js
Erstellen Sie eine index.html-Datei mit folgendem Quellcode-Inhalt:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>bpmn-js Demo</title>
<style>
#canvas {
width: 100%;
height: 600px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="canvas"></div>
<script src="app.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>bpmn-js Demo</title>
<style>
#canvas {
width: 100%;
height: 600px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="canvas"></div>
<script src="app.js"></script>
</body>
</html>
Erstellen Sie eine app.js-Datei, um das BPMN-Diagramm zu initialisieren und darzustellen:
import BpmnViewer from 'bpmn-js/lib/NavigatedViewer';
// XML string
const bpmnXML = `<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="17.6.4" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<process id="Process_1" isExecutable="false">
<startEvent id="StartEvent_1">
<outgoing>Flow_1a5niwu</outgoing>
</startEvent>
<task id="Activity_0ncu32f" name="This is the Test Diagram">
<incoming>Flow_1a5niwu</incoming>
</task>
<sequenceFlow id="Flow_1a5niwu" sourceRef="StartEvent_1" targetRef="Activity_0ncu32f" />
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
<omgdc:Bounds x="152" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ncu32f_di" bpmnElement="Activity_0ncu32f">
<omgdc:Bounds x="240" y="80" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1a5niwu_di" bpmnElement="Flow_1a5niwu">
<omgdi:waypoint x="188" y="120" />
<omgdi:waypoint x="240" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>`;
const viewer = new BpmnViewer({
container: '#canvas'
});
viewer.importXML(bpmnXML, function(err) {
if (err) {
console.error('Error rendering', err);
} else {
console.log('BPMN diagram rendered');
}
});
Um das Projekt bereitzustellen, können Sie einen einfachen statischen Server wie http-server verwenden:
npm install -g http-server
http-server .
Öffnen Sie Ihren Browser und navigieren Sie zu http://localhost:8080, um das BPMN-Diagramm auf der Seite angezeigt zu sehen.
Während das obige Beispiel die Grundlagen abdeckt, bietet bpmn-js erweiterte Funktionen wie das Hinzufügen benutzerdefinierter Elemente, die Integration mit Backend-Systemen und den Export von Diagrammen. Sie können diese Funktionen in derbpmn-js Dokumentation.
IronPDF ist eine leistungsstarke Bibliothek, die es Entwicklern ermöglicht, PDF-Dokumente programmgesteuert zu erzeugen, zu bearbeiten und zu konvertieren. Ursprünglich für .NET entwickelt, wurde IronPDF erweitert, um JavaScript zu unterstützen und bietet leistungsstarke PDF-Generierungsfähigkeiten für Webanwendungen.
PDF-Erstellung: Erstellen Sie PDFs aus HTML, URLs oder rohen Inhalten ganz einfach.
PDF-Bearbeitung: Zusammenführen, aufteilen und bearbeiten bestehender PDF-Dokumente.
Konvertierung: Verschiedene Dokumentformate konvertieren(wie HTML und Bilder) zu PDF.
Um die Integration von IronPDF mit bpmn-js zu demonstrieren, erstellen wir ein Node.js-Projekt, das ein PDF aus einem BPMN-Diagramm generiert.
Erstellen Sie ein neues Verzeichnis für Ihr Projekt und initialisieren Sie es:
mkdir bpmn-ironpdf-demo
cd bpmn-ironpdf-demo
npm init -y
Installieren Sie IronPDF:
npm i @ironsoftware/ironpdf
Erstellen Sie eine Datei mit dem Namen generatePDF.js:
const fs = require('fs');
const { createCanvas } = require('canvas');
const BpmnViewer = require('bpmn-js/lib/Viewer');
const PdfGenerator = require('@ironsoftware/ironpdf');
// BPMN XML data
const bpmnXML = `<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
id="sample-diagram"
targetNamespace="http://bpmn.io/schema/bpmn">
<process id="Process_1" isExecutable="false">
<startEvent id="StartEvent_1"/>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
<omgdc:Bounds x="173" y="102" width="36" height="36"/>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>`;
const canvas = createCanvas(800, 600);
const viewer = new BpmnViewer({ container: canvas });
viewer.importXML(bpmnXML, function(err) {
if (err) {
console.error('Error rendering BPMN diagram:', err);
return;
}
viewer.get('canvas').zoom('fit-viewport');
const stream = canvas.createPNGStream();
const out = fs.createWriteStream('diagram.png');
stream.pipe(out);
out.on('finish', () => {
console.log('BPMN diagram saved as PNG');
// Generate PDF from the saved PNG
PdfGenerator.imageToPdf(filePaths)
.then((pdf) => {
pdf.saveAs('diagram.pdf');
console.log('PDF generated and saved as diagram.pdf');
})
.catch((error) => {
console.error('Error generating PDF:', error);
});
});
});
Führen Sie das Skript aus, um das BPMN-Diagramm zu erstellen und als PDF zu speichern:
node generatePDF.js
Die Integration von bpmn-js und IronPDF ermöglicht es Ihnen, interaktive BPMN-Diagramme zu erstellen und in PDF-Dokumente zu konvertieren, wodurch die Leistungsfähigkeit der visuellen Prozessmodellierung mit der Vielseitigkeit der PDF-Generierung kombiniert wird. Diese Integration kann besonders nützlich sein, um Dokumentationen, Berichte oder jedes andere Format zu erstellen, in dem eine visuelle Darstellung von Prozessen erforderlich ist. Beide Bibliotheken bieten umfangreiche Dokumentation und Unterstützung, was den Einstieg erleichtert und die Erweiterung der bereitgestellten Grundbeispiele ermöglicht.
Für umfassende Details zur IronPDF-Lizenzierung, beziehen Sie sich auf die IronPDF-Lizenzseite. Um mehr Verständnis oder zusätzliche Ressourcen zu erlangen, schauen Sie sich unser ausführliches Tutorial zuKonvertierung von HTML in PDF.
9 .NET API-Produkte für Ihre Bürodokumente