Converter texto em SVG em C#

O elemento de texto SVG é usado para definir um texto em SVG. SVG (Scalable Vector Graphics) é um formato de arquivo vetorial amigável para a web. Ele é usado para exibir informações visuais em uma página da web. Podemos facilmente escrever qualquer texto em SVG usando o elemento SVG Text. Neste artigo, aprenderemos como converter texto em SVG em C#.

Os seguintes tópicos serão abordados neste artigo:

  1. API C# para converter texto em SVG
  2. O que é texto SVG
  3. Converter texto em SVG
  4. Converter texto com TSpan em SVG
  5. Texto SVG com TextPath
  6. Aplicar estilos de texto SVG

API C# para converter texto em SVG

Para converter texto em SVG, usaremos a API Aspose.SVG for .NET. Ele permite carregar, analisar, renderizar, criar e converter arquivos SVG para formatos populares sem nenhuma dependência de software.

A classe SVGDocument da API representa a raiz da hierarquia SVG e contém todo o conteúdo. Temos o método Save() nesta classe que permite salvar SVG no caminho do arquivo especificado. A classe SVGTextElement representa o elemento ’texto’. A interface SVGTSpanElement corresponde ao elemento ’tspan’. A API fornece a classe SVGTextPathElement representando o elemento ’textPath’ e SVGPathElement para o elemento ‘path’. Podemos definir várias propriedades/atributos para elementos SVG usando o método SetAttribute(string, string). O método AppendChild(Node) da API adiciona o novo filho do nó ao final da lista de filhos deste node.

Por favor, faça o download da DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.SVG

O que é texto SVG?

Em SVG, o texto é renderizado usando o elemento . Por padrão, o texto é renderizado com um preenchimento preto e sem contorno. Podemos definir os seguintes atributos:

  • x: define a posição do ponto horizontalmente.
  • y: define a posição do ponto verticalmente.
  • fill: define a cor do texto renderizado.
  • transform : girar, transladar, inclinar e dimensionar.

Converter texto em SVG usando C#

Podemos adicionar qualquer texto ao SVG seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe SVGDocument.
  2. Em seguida, obtenha o elemento raiz do documento.
  3. Em seguida, crie o objeto de classe SVGTextElement.
  4. Em seguida, defina vários atributos usando o método SetAttribute().
  5. Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
  6. Por fim, salve a imagem SVG de saída usando o método Save().

O exemplo de código a seguir mostra como converter texto em SVG em C#.

// Este exemplo de código demonstra como adicionar texto ao SVG.
var document = new SVGDocument();

// Obter elemento svg raiz do documento
var svgElement = document.RootElement;

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

// Definir elemento de texto SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");

// Defina o texto a ser exibido
text.TextContent = "The is a simple SVG text!";

// Defina vários atributos
text.SetAttribute("fill", "blue");
text.SetAttribute("x", "10");
text.SetAttribute("y", "30");

// Anexar texto à raiz
svgElement.AppendChild(text);

// Salvar como SVG
document.Save(@"C:\Files\simple-text.svg");
Converter-Texto-para-SVG-usando-CSharp

Converter texto em SVG usando C#.

Veja abaixo o conteúdo da imagem 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>

Converter texto com TSpan para SVG em C#

O elemento SVG define um subtexto dentro de um elemento . Podemos adicionar qualquer texto com um elemento tspan ao SVG seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe SVGDocument.
  2. Em seguida, obtenha o elemento raiz do documento.
  3. Em seguida, crie o objeto de classe SVGTextElement.
  4. Opcionalmente, defina vários atributos usando o método SetAttribute().
  5. Em seguida, defina o objeto SVGTSpanElement.
  6. Em seguida, defina seus atributos usando o método SetAttribute().
  7. Agora, chame o método AppendChild() para anexá-lo ao elemento SVGTextElement.
  8. Repita as etapas acima para adicionar mais objetos SVGTSpanElement.
  9. Depois disso, chame o método AppendChild() para anexar SVGTextElement ao elemento raiz.
  10. Por fim, salve a imagem SVG de saída usando o método Save().

O exemplo de código a seguir mostra como converter texto com tspan em SVG em C#.

// Este exemplo de código demonstra como adicionar texto com tspan a SVG.
var document = new SVGDocument();

// Obter elemento svg raiz do documento
var svgElement = document.RootElement;

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

// Elemento de texto 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");

// Anexar ao texto SVG
text.AppendChild(tspan1);

// Outro 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");

// Anexar ao texto SVG
text.AppendChild(tspan2);

// Anexar texto SVG à raiz
svgElement.AppendChild(text);

// Salve o SVG
document.Save(@"C:\Files\svg-tSpan.svg");
Texto SVG com tspan-in-CSharp

Converta texto com tspan para SVG em C#.

Veja abaixo o conteúdo da imagem 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>

Texto SVG com TextPath em C#

Também podemos renderizar o texto ao longo da forma de um elemento e colocar o texto em um elemento . Permite definir uma referência ao elemento usando o atributo href. Podemos converter texto com caminhos de texto seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe SVGDocument.
  2. Em seguida, obtenha o elemento raiz do documento.
  3. Em seguida, crie o objeto de classe SVGPathElement e defina vários atributos usando o método SetAttribute().
  4. Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
  5. Em seguida, crie o objeto da classe SVGTextElement.
  6. Em seguida, inicialize o objeto SVGTextPathElement e defina o conteúdo do texto.
  7. Em seguida, atribua o SVGPathElement ao seu atributo href usando o método SetAttribute().
  8. Em seguida, chame o método AppendChild() para anexar SVGTextPathElement ao elemento SVGTextElement.
  9. Depois disso, anexe SVGTextElement ao elemento raiz usando o método AppendChild().
  10. Por fim, salve a imagem SVG de saída usando o método Save().

O exemplo de código a seguir mostra como converter texto com textPath para SVG em C#.

// Este exemplo de código demonstra como adicionar texto com textPath a SVG.
var document = new SVGDocument();

// Obter elemento svg raiz do documento
var svgElement = document.RootElement;

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

// Elemento de caminho 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");

// Anexar caminho SVG ao elemento raiz
svgElement.AppendChild(path1);

// Another Elemento de caminho 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");

// Anexar caminho SVG ao elemento raiz
svgElement.AppendChild(path2);

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

// Criar elemento de caminho de texto 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");

// Anexar caminho de texto SVG ao texto SVG
text.AppendChild(textPath1);

// Outro elemento de caminho de texto 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");

// Anexar caminho de texto SVG ao texto SVG
text.AppendChild(textPath2);

// Anexar texto SVG à raiz
svgElement.AppendChild(text);

// Salve o SVG
document.Save(@"C:\Files\svg-textPath.svg");
SVG-Texto-com-textPath-in-CSharp

Converta texto com textPath para SVG em C#.

Veja abaixo o conteúdo da imagem 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>

Aplicar estilo de texto SVG em C#

Podemos adicionar qualquer texto ao SVG seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe SVGDocument.
  2. Em seguida, obtenha o elemento raiz do documento.
  3. Em seguida, crie o objeto de classe SVGTextElement.
  4. Em seguida, defina o atributo de estilo usando o método SetAttribute().
  5. Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
  6. Por fim, salve a imagem SVG de saída usando o método Save().

O exemplo de código a seguir mostra como aplicar estilos CSS ao texto SVG em C#.

// Este exemplo de código demonstra como adicionar texto ao SVG e aplicar atributos de estilo CSS.
var document = new SVGDocument();

// Obter elemento svg raiz do documento
var svgElement = document.RootElement;

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

// Definir elemento de texto SVG
var text = (SVGTextElement)document.CreateElementNS(@namespace, "text");

// Defina o texto a ser exibido
text.TextContent = "The is a simple SVG text!";

// Defina vários atributos
text.SetAttribute("fill", "blue");
text.SetAttribute("x", "10");
text.SetAttribute("y", "30");

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

// Anexar texto à raiz
svgElement.AppendChild(text);

// Salvar como SVG
document.Save(@"C:\Files\text-style.svg");
Aplicar-SVG-Texto-Estilo-em-CSharp

Aplique o estilo de texto SVG em C#.

Veja abaixo o conteúdo da imagem 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>

Obtenha Licença Temporária Gratuita

Você pode obter uma licença temporária gratuita para experimentar o Aspose.SVG para .NET sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • crie uma nova imagem SVG;
  • usar elementos de texto SVG;
  • renderizar texto SVG para o caminho;
  • definir atributos de posição e preenchimento para texto SVG;
  • defina atributos de estilo para o texto SVG em C#.

Além de converter texto para SVG em C#, você pode aprender mais sobre Aspose.SVG para .NET na documentação e explorar diferentes recursos suportados pela API. Em caso de qualquer ambiguidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também