## One method to convert Text to SVG-File.

The problem can exist, that we want to import text into an application, which nevertheless expects a graphics file, but that the application is strong enough to accept SVG-Files as an available graphics-file format.

In studying this problem, I came to a discovery which was new to me about what SVG-Files are. In fact, SVG is a markup-language similar to HTML or to XML, so that by default, SVG-Files are actually text-files ! This also means, that if our Web-authoring software offers to embed SVG, this is not done with an <embed> -tag, as if the file was to be treated as some sort of image, but rather, using an actual <svg> -tag.

The main difference in SVG-Files would seem to be, that they prepend an <xml> -tag, making the file a self-contained document.

What this also means, is that text can be converted into SVG-Files most-efficiently, using a text-editor, where we’d first set up a template, then copy that to a new file-name every time we need a working SVG-File, and then just edit the text…

The following is a type of template which has worked for me, in experiments I carried out:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!--
Instructions for Windows users:
This file will probably need to be renamed
From: Template.svg.txt (where .txt was hidden)
To:   Template.svg

And then placed in a folder with other images.
A console window would need to be navigated to
the same directory...

Linux Usage:

cp Template.svg TextFile.svg
edit text/*:TextFile.svg

Windows Usage:

copy Template.svg TextFile.svg (Hypothetical Name)

For either Linux or Windows,
assuming Inkscape is installed and in the PATH:

inkscape -z -e TextFile.svg.png TextFile.svg

OR

inkscape -z -T -l TextFile-G.svg TextFile.svg

-->

<svg height="90" width="200">
<g>
<text x="10" y="15" style="fill:black;"
font-size="12" font-family="Liberation">Several lines:
<tspan x="10" dy="15">Second line.</tspan>
<tspan x="10" dy="15">Third line.</tspan>
</text>
</g>
</svg>


One assumption made in creating this template was, that Inkscape is installed in such a way, as to recognize the stated font-family. This parameter can just be omitted, in which case Inkscape would use whatever its default font is. But, to state such information provides consistent, predictable results. In contrast, I needed to set the font-size. Inkscape could default to an unexpected font-size, which in turn would lead to garbled output, in the resulting PNG-File. And, the default font-size Inkscape uses, appears to be the one last-set when the GUI was used.

(Edit 03/15/2018 :

By now, this template only serves as a working basis, for a shell-script I have written, which allows me to create such text-images with a single command. I have posted the script to my blog. But, if readers are nevertheless interested in understanding the workings of SVG-Files, I’m always leaving my existing ruminations as written blow… )