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:
- API C# para converter texto em SVG
- O que é texto SVG
- Converter texto em SVG
- Converter texto com TSpan em SVG
- Texto SVG com TextPath
- 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:
- Primeiramente, crie uma instância da classe SVGDocument.
- Em seguida, obtenha o elemento raiz do documento.
- Em seguida, crie o objeto de classe SVGTextElement.
- Em seguida, defina vários atributos usando o método SetAttribute().
- Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
- 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");
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:
- Primeiramente, crie uma instância da classe SVGDocument.
- Em seguida, obtenha o elemento raiz do documento.
- Em seguida, crie o objeto de classe SVGTextElement.
- Opcionalmente, defina vários atributos usando o método SetAttribute().
- Em seguida, defina o objeto SVGTSpanElement.
- Em seguida, defina seus atributos usando o método SetAttribute().
- Agora, chame o método AppendChild() para anexá-lo ao elemento SVGTextElement.
- Repita as etapas acima para adicionar mais objetos SVGTSpanElement.
- Depois disso, chame o método AppendChild() para anexar SVGTextElement ao elemento raiz.
- 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");
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:
- Primeiramente, crie uma instância da classe SVGDocument.
- Em seguida, obtenha o elemento raiz do documento.
- Em seguida, crie o objeto de classe SVGPathElement e defina vários atributos usando o método SetAttribute().
- Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
- Em seguida, crie o objeto da classe SVGTextElement.
- Em seguida, inicialize o objeto SVGTextPathElement e defina o conteúdo do texto.
- Em seguida, atribua o SVGPathElement ao seu atributo href usando o método SetAttribute().
- Em seguida, chame o método AppendChild() para anexar SVGTextPathElement ao elemento SVGTextElement.
- Depois disso, anexe SVGTextElement ao elemento raiz usando o método AppendChild().
- 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");
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:
- Primeiramente, crie uma instância da classe SVGDocument.
- Em seguida, obtenha o elemento raiz do documento.
- Em seguida, crie o objeto de classe SVGTextElement.
- Em seguida, defina o atributo de estilo usando o método SetAttribute().
- Depois disso, chame o método AppendChild() para anexá-lo ao elemento raiz.
- 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");
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.