Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Kurze Antwort: Um SVG-Text in Python zu zeichnen, erstellen Sie ein <text>-Element mit
create_element_ns(), setzen die Attribute x, y, font-family, font-size, fill und text-anchor mit
set_attribute(), setzen text_content, hängen den Text an das SVG-Wurzelelement an und speichern das Dokument.
1from aspose.svg import SVGDocument
2
3with SVGDocument() as document:
4 text = document.create_element_ns("http://www.w3.org/2000/svg", "text")
5 text.set_attribute("x", "20")
6 text.set_attribute("y", "40")
7 text.text_content = "Hello SVG"
8 document.root_element.append_child(text)
9 document.save("text.svg")In diesem Artikel lernen Sie, wie Sie:
<text>-Elemente in Python erstellen;x- und y-Koordinaten positionieren;font-family, font-size, fill und text-anchor setzen;<tspan>-Elementen erstellen.SVG-Text bleibt echter Text im SVG-Markup. Er kann später ausgewählt, durchsucht, lokalisiert, gestaltet und bearbeitet werden. Wenn Sie Text für finale Grafik oder fontunabhängiges Rendering in Vektorkonturen umwandeln müssen, verwenden Sie stattdessen Textvektorisierung. Mehr Hintergrund zu SVG-Markup finden Sie im Leitfaden SVG Text.
| Attribut oder Element | Verwendung |
|---|---|
x, y | Positioniert die Textgrundlinie |
font-family | Wählt die angeforderte Schriftfamilie |
font-size | Setzt die Textgröße in SVG-Einheiten |
fill | Setzt die Textfarbe |
text-anchor | Richtet Text relativ zur x-Koordinate aus |
<tspan> | Fügt positionierte Fragmente oder einfachen mehrzeiligen Text hinzu |
Verwenden Sie diesen Workflow, wenn generierte SVG-Grafik Labels, Beschriftungen, Badges oder Text in Diagrammen benoetigt:
SVGDocument.width, height und viewBox des SVG-Wurzelelements, wenn Sie ein neues Dokument erstellen.<text>-Element mit
create_element_ns().x, y, font-size, font-family, fill und text-anchor mit
set_attribute().text_content oder hängen Sie <tspan>-Kindelemente an.append_child() an das SVG-Wurzelelement an und speichern Sie das Dokument mit
document.save().Das folgende Beispiel erstellt ein kleines SVG-Label mit Hintergrundrechteck und zentriertem Text. Verwenden Sie text-anchor="middle", wenn die x-Koordinate die horizontale Mitte des Textes darstellen soll.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "svg-text-label.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "320")
13 svg.set_attribute("height", "120")
14 svg.set_attribute("viewBox", "0 0 320 120")
15
16 background = document.create_element_ns(namespace_uri, "rect")
17 background.set_attribute("x", "24")
18 background.set_attribute("y", "24")
19 background.set_attribute("width", "272")
20 background.set_attribute("height", "72")
21 background.set_attribute("rx", "12")
22 background.set_attribute("fill", "#f7f7fb")
23 background.set_attribute("stroke", "#546e7a")
24 background.set_attribute("stroke-width", "3")
25 svg.append_child(background)
26
27 label = document.create_element_ns(namespace_uri, "text")
28 label.set_attribute("x", "160")
29 label.set_attribute("y", "68")
30 label.set_attribute("text-anchor", "middle")
31 label.set_attribute("font-family", "Arial, sans-serif")
32 label.set_attribute("font-size", "26")
33 label.set_attribute("font-weight", "700")
34 label.set_attribute("fill", "#263238")
35 label.text_content = "SVG Text"
36 svg.append_child(label)
37
38 document.save(output_path)Die Textgrundlinie wird durch y gesteuert, nicht durch die obere Kante der Buchstaben. Wenn die vertikale Position exakt optisch zentriert sein muss, passen Sie den y-Wert an oder verwenden Sie Schriftmetriken in Ihrer eigenen Layoutlogik.
Die Abbildung zeigt das Ergebnis des Beispiels: Ein abgerundetes Rechteck dient als einfacher Label-Hintergrund, und text-anchor="middle" richtet die Beschriftung SVG Text an der mittleren x-Koordinate aus.

<tspan> erstellenVerwenden Sie <tspan>, wenn ein Textblock mehrere Zeilen oder separat positionierte Fragmente enthalten soll. Das nächste Beispiel erstellt ein <text>-Element und hängt zwei <tspan>-Kindelemente mit unterschiedlichen y-Positionen an.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "svg-multiline-text.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "400")
13 svg.set_attribute("height", "120")
14 svg.set_attribute("viewBox", "0 0 400 120")
15
16 text = document.create_element_ns(namespace_uri, "text")
17 text.set_attribute("x", "200")
18 text.set_attribute("y", "48")
19 text.set_attribute("font-family", "Arial, sans-serif")
20 text.set_attribute("font-size", "22")
21 text.set_attribute("text-anchor", "middle")
22 text.set_attribute("fill", "#263238")
23
24 first_line = document.create_element_ns(namespace_uri, "tspan")
25 first_line.set_attribute("x", "200")
26 first_line.set_attribute("y", "48")
27 first_line.text_content = "Generated SVG Text"
28 text.append_child(first_line)
29
30 second_line = document.create_element_ns(namespace_uri, "tspan")
31 second_line.set_attribute("x", "200")
32 second_line.set_attribute("y", "84")
33 second_line.set_attribute("fill", "#2e86de")
34 second_line.text_content = "with Aspose.SVG for Python via .NET"
35 text.append_child(second_line)
36
37 svg.append_child(text)
38 document.save(output_path)Beide Zeilen gehören zum selben <text>-Element, aber jedes <tspan> besitzt eine eigene Position und kann Stilattribute wie fill überschreiben.
Die Abbildung zeigt die zweizeilige SVG-Textausgabe. Das erste <tspan> zeichnet den dunklen Titel, und das zweite <tspan> verwendet eine eigene y-Position sowie einen blauen fill-Wert für die Unterzeile.

| Problem | Lösung |
|---|---|
| Text ist nicht sichtbar | Setzen Sie fill, prüfen Sie x und y, und stellen Sie sicher, dass der Text innerhalb der viewBox liegt |
| Text erscheint zu hoch oder zu niedrig | Denken Sie daran, dass y die Textgrundlinie positioniert, nicht die obere Kante |
| Zentrierung funktioniert nicht | Setzen Sie text-anchor="middle" und verwenden Sie die gewünschte Mitte als x-Wert |
| Mehrzeiliger Text überlappt | Geben Sie jedem <tspan> einen eigenen y-Wert oder verwenden Sie dy-Abstände kontrolliert |
| Text wird auf einem anderen Rechner anders gerendert | Verwenden Sie verbreitete Schriftarten oder wandeln Sie finale Grafik in Vektorpfade um, wenn Fontunabhängigkeit wichtig ist |
Erstellen Sie ein <text>-Element mit create_element_ns(), setzen Sie die Attribute x, y, font-family, font-size und fill, setzen Sie text_content, hängen Sie es an das SVG-Wurzelelement an und speichern Sie das SVG.
Setzen Sie text-anchor="middle" und setzen Sie x auf die gewünschte horizontale Mitte. Passen Sie y für die Position der Grundlinie an.
Ja. Verwenden Sie ein <text>-Element mit mehreren <tspan>-Kindelementen. Geben Sie jedem <tspan> eigene Werte für x und y oder verwenden Sie kontrollierte dy-Abstände.
Zeichnen Sie normalen SVG-Text, wenn der Text editierbar, durchsuchbar oder lokalisierbar bleiben soll. Vektorisieren Sie Text nur für finale Grafik, die exakte Glyphenkonturen ohne Abhängigkeit von installierten Schriftarten bewahren muss.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.