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) Notepad TextFile.svg 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… )