Converti testo in SVG in C#

L’elemento SVG Text viene utilizzato per definire un testo in SVG. SVG (Scalable Vector Graphics) è un formato di file vettoriale compatibile con il Web. Viene utilizzato per visualizzare informazioni visive su una pagina Web. Possiamo facilmente scrivere qualsiasi testo in SVG usando l’elemento SVG Text. In questo articolo impareremo come convertire il testo in SVG in C#.

In questo articolo verranno trattati i seguenti argomenti:

  1. API C# per convertire testo in SVG
  2. Cos’è il testo SVG
  3. Converti testo in SVG
  4. Converti testo con TSpan in SVG
  5. Testo SVG con TextPath
  6. Applica stili di testo SVG

API C# per convertire il testo in SVG

Per convertire il testo in SVG, utilizzeremo l’API Aspose.SVG for .NET. Consente il caricamento, l’analisi, il rendering, la creazione e la conversione di file SVG in formati popolari senza alcuna dipendenza dal software.

La classe SVGDocument dell’API rappresenta la radice della gerarchia SVG e contiene l’intero contenuto. Abbiamo il metodo Save() in questa classe che consente di salvare SVG nel percorso del file specificato. La classe SVGTextElement rappresenta l’elemento ’text’. L’interfaccia SVGTSpanElement corrisponde all’elemento ’tspan’. L’API fornisce la classe SVGTextPathElement che rappresenta l’elemento ’textPath’ e SVGTextPathElement per l’elemento ‘path’. Possiamo impostare varie proprietà/attributi per gli elementi SVG usando il metodo SetAttribute(string, string). Il metodo AppendChild(Node) dell’API aggiunge il nuovo figlio del nodo alla fine dell’elenco dei figli di questo nodo.

Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.SVG

Che cos’è il testo SVG?

In SVG, il testo viene visualizzato utilizzando l’elemento . Per impostazione predefinita, il testo viene visualizzato con un riempimento nero e nessun contorno. Possiamo definire i seguenti attributi:

  • x: imposta la posizione del punto in orizzontale.
  • y: imposta la posizione del punto in verticale.
  • riempimento: definisce il colore del testo renderizzato.
  • trasforma : ruota, trasla, inclina e ridimensiona.

Converti testo in SVG usando C#

Possiamo aggiungere qualsiasi testo a SVG seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe SVGDocument.
  2. Quindi, ottieni l’elemento radice del documento.
  3. Quindi, crea l’oggetto classe SVGTextElement.
  4. Quindi, imposta vari attributi usando il metodo SetAttribute().
  5. Successivamente, chiama il metodo AppendChild() per aggiungerlo all’elemento radice.
  6. Infine, salva l’immagine SVG di output usando il metodo Save().

L’esempio di codice seguente mostra come convertire il testo in SVG in C#.

// Questo esempio di codice mostra come aggiungere testo a SVG.
var document = new SVGDocument();

// Ottieni l'elemento svg radice del documento
var svgElement = document.RootElement;

const string @namespace = "http://www.w3.org/2000/svg";

// Definisci l'elemento di testo SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");

// Definisci il testo da mostrare
text.TextContent = "The is a simple SVG text!";

// Imposta vari attributi
text.SetAttribute("fill", "blue");
text.SetAttribute("x", "10");
text.SetAttribute("y", "30");

// Aggiungi il testo alla radice
svgElement.AppendChild(text);

// Salva come SVG
document.Save(@"C:\Files\simple-text.svg");
Converti testo in SVG utilizzando CSharp

Converti testo in SVG usando C#.

Di seguito troverai il contenuto dell’immagine simple-text.svg.

<svg xmlns="http://www.w3.org/2000/svg">
    <text fill="blue" x="10" y="30">The is a simple SVG text!</text>
</svg>

Converti testo con TSpan in SVG in C#

L’elemento SVG definisce un sottotesto all’interno di un elemento . Possiamo aggiungere qualsiasi testo con un elemento tspan a SVG seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe SVGDocument.
  2. Quindi, ottieni l’elemento radice del documento.
  3. Quindi, crea l’oggetto classe SVGTextElement.
  4. Facoltativamente, imposta vari attributi usando il metodo SetAttribute().
  5. Quindi, definisci l’oggetto SVGTSpanElement.
  6. Quindi, imposta i suoi attributi usando il metodo SetAttribute().
  7. Ora, chiama il metodo AppendChild() per aggiungerlo all’elemento SVGTextElement.
  8. Ripetere i passaggi precedenti per aggiungere altri oggetti SVGTSpanElement.
  9. Successivamente, chiama il metodo AppendChild() per aggiungere SVGTextElement all’elemento radice.
  10. Infine, salva l’immagine SVG di output usando il metodo Save().

L’esempio di codice seguente mostra come convertire il testo con tspan in SVG in C#.

// Questo esempio di codice mostra come aggiungere testo con tspan a SVG.
var document = new SVGDocument();

// Ottieni l'elemento svg radice del documento
var svgElement = document.RootElement;

const string @namespace = "http://www.w3.org/2000/svg";

// Elemento di testo SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");
text.SetAttribute("style", "font-family:arial");
text.SetAttribute("x", "20");
text.SetAttribute("y", "60");

// Elemento SVG TSpan
var tspan1 = (SVGTSpanElement)document.CreateElementNS(@namespace, "tspan");
tspan1.TextContent = "ASPOSE";
tspan1.SetAttribute("style", "font-weight:bold; font-size:55px");
tspan1.SetAttribute("x", "20");
tspan1.SetAttribute("y", "60");

// Aggiungi al testo SVG
text.AppendChild(tspan1);

// Un altro elemento TSpan
var tspan2 = (SVGTSpanElement)document.CreateElementNS(@namespace, "tspan");
tspan2.TextContent = "Your File Format APIs";
tspan2.SetAttribute("style", "font-size:20px; fill:grey");
tspan2.SetAttribute("x", "37");
tspan2.SetAttribute("y", "90");

// Aggiungi al testo SVG
text.AppendChild(tspan2);

// Aggiungi il testo SVG alla radice
svgElement.AppendChild(text);

// Salva l'SVG
document.Save(@"C:\Files\svg-tSpan.svg");
SVG-Text-with-tspan-in-CSharp

Converti testo con tspan in SVG in C#.

Di seguito trovi il contenuto dell’immagine svg-tspan.svg.

<svg xmlns="http://www.w3.org/2000/svg">
    <text style="font-family: arial;" x="20" y="60">
        <tspan style="font-weight: bold; font-size: 55px;" x="20" y="60">ASPOSE</tspan>
        <tspan style="font-size: 20px; fill: grey;" x="37" y="90">Your File Format APIs</tspan>
    </text>
</svg>

Testo SVG con TextPath in C#

Possiamo anche eseguire il rendering del testo lungo la forma di un elemento e racchiudere il testo in un elemento . Consente di impostare un riferimento all’elemento utilizzando l’attributo href. Possiamo convertire il testo con percorsi di testo seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe SVGDocument.
  2. Quindi, ottieni l’elemento radice del documento.
  3. Quindi, crea l’oggetto classe SVGPathElement e imposta vari attributi usando il metodo SetAttribute().
  4. Successivamente, chiama il metodo AppendChild() per aggiungerlo all’elemento radice.
  5. Quindi, crea l’oggetto classe SVGTextElement.
  6. Quindi, inizializza l’oggetto SVGTextPathElement e imposta il contenuto del testo.
  7. Quindi, assegna SVGPathElement al relativo attributo href utilizzando il metodo SetAttribute().
  8. Quindi, chiama il metodo AppendChild() per aggiungere SVGTextPathElement all’elemento SVGTextElement.
  9. Successivamente, aggiungi SVGTextElement all’elemento radice utilizzando il metodo AppendChild().
  10. Infine, salva l’immagine SVG di output usando il metodo Save().

L’esempio di codice seguente mostra come convertire il testo con textPath in SVG in C#.

// Questo esempio di codice mostra come aggiungere testo con textPath a SVG.
var document = new SVGDocument();

// Ottieni l'elemento svg radice del documento
var svgElement = document.RootElement;

const string @namespace = "http://www.w3.org/2000/svg";

// Elemento percorso SVG
var path1 = (SVGPathElement)document.CreateElementNS(@namespace, "path");
path1.SetAttribute("id", "path_1");
path1.SetAttribute("d", "M 50 100 Q 25 10 180 100 T 350 100 T 520 100 T 690 100");
path1.SetAttribute("fill", "transparent");

// Aggiungi il percorso SVG all'elemento radice
svgElement.AppendChild(path1);

// Another Elemento percorso SVG
var path2 = (SVGPathElement)document.CreateElementNS(@namespace, "path");
path2.SetAttribute("id", "path_2");
path2.SetAttribute("d", "M 50 100 Q 25 10 180 100 T 350 100");
path2.SetAttribute("transform", "translate(0,75)");
path2.SetAttribute("fill", "transparent");

// Aggiungi il percorso SVG all'elemento radice
svgElement.AppendChild(path2);

// Elemento di testo SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");

// Crea un elemento del percorso di testo SVG
var textPath1 = (SVGTextPathElement)document.CreateElementNS(@namespace, "textPath");
textPath1.TextContent = "Aspose.SVG for .NET is flexible library for SVG files processing and fully compatible with its specifications.";
textPath1.SetAttribute("href", "#path_1");

// Aggiungi il percorso del testo SVG al testo SVG
text.AppendChild(textPath1);

// Un altro elemento del percorso di testo SVG
var textPath2 = (SVGTextPathElement)document.CreateElementNS(@namespace, "textPath");
textPath2.TextContent = "Aspose.SVG for .NET is flexible library for SVG files processing and fully compatible with its specifications.";
textPath2.SetAttribute("href", "#path_2");

// Aggiungi il percorso del testo SVG al testo SVG
text.AppendChild(textPath2);

// Aggiungi il testo SVG alla radice
svgElement.AppendChild(text);

// Salva l'SVG
document.Save(@"C:\Files\svg-textPath.svg");
SVG-Text-with-textPath-in-CSharp

Converti testo con textPath in SVG in C#.

Di seguito troverai il contenuto dell’immagine svg-textPath.svg.

<svg xmlns="http://www.w3.org/2000/svg">
    <path id="path_1" d="M 50 100 Q 25 10 180 100 T 350 100 T 520 100 T 690 100" fill="transparent"/>
    <path id="path_2" d="M 50 100 Q 25 10 180 100 T 350 100" transform="translate(0,75)" fill="transparent"/>
    <text>
        <textPath href="#path_1">Aspose.SVG for .NET is flexible library for SVG files processing and fully compatible with its specifications.</textPath>
        <textPath href="#path_2">Aspose.SVG for .NET is flexible library for SVG files processing and fully compatible with its specifications.</textPath>
    </text>
</svg>

Applica lo stile di testo SVG in C#

Possiamo aggiungere qualsiasi testo a SVG seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe SVGDocument.
  2. Quindi, ottieni l’elemento radice del documento.
  3. Quindi, crea l’oggetto classe SVGTextElement.
  4. Quindi, imposta l’attributo style usando il metodo SetAttribute().
  5. Successivamente, chiama il metodo AppendChild() per aggiungerlo all’elemento radice.
  6. Infine, salva l’immagine SVG di output usando il metodo Save().

L’esempio di codice seguente mostra come applicare gli stili CSS al testo SVG in C#.

// Questo esempio di codice mostra come aggiungere testo a SVG e applicare attributi di stile CSS.
var document = new SVGDocument();

// Ottieni l'elemento svg radice del documento
var svgElement = document.RootElement;

const string @namespace = "http://www.w3.org/2000/svg";

// Definisci l'elemento di testo SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");

// Definisci il testo da mostrare
text.TextContent = "The is a simple SVG text!";

// Imposta vari attributi
text.SetAttribute("fill", "blue");
text.SetAttribute("x", "10");
text.SetAttribute("y", "30");

// Applica stile
text.SetAttribute("style", "font-weight:bold; font-style: italic; text-decoration: line-through; text-transform: capitalize;");

// Aggiungi il testo alla radice
svgElement.AppendChild(text);

// Salva come SVG
document.Save(@"C:\Files\text-style.svg");
Apply-SVG-Text-Style-in-CSharp

Applica lo stile di testo SVG in C#.

Di seguito trovi il contenuto dell’immagine text-style.svg.

<svg xmlns="http://www.w3.org/2000/svg">
    <text fill="blue" x="10" y="30" style="font-weight: bold; font-style: italic; text-decoration-line: line-through; text-transform: capitalize;">The is a simple SVG text!</text>
</svg>

Ottieni una licenza temporanea gratuita

Puoi ottenere una licenza temporanea gratuita per provare Aspose.SVG per .NET senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • crea una nuova immagine SVG;
  • utilizzare elementi di testo SVG;
  • renderizza il testo SVG nel percorso;
  • imposta la posizione e riempi gli attributi per il testo SVG;
  • imposta gli attributi di stile per il testo SVG in C#.

Oltre a convertire il testo in SVG in C#, puoi saperne di più su Aspose.SVG per .NET nella documentazione ed esplorare diverse funzionalità supportate dall’API. In caso di ambiguità, non esitare a contattarci sul nostro forum di supporto gratuito.

Guarda anche