Support for SVG fonts (rendering, embedding,...)

Bug #170963 reported by Bug Importer
110
This bug affects 14 people
Affects Status Importance Assigned to Milestone
Inkscape
Invalid
Wishlist
Unassigned

Bug Description

Currently, if you want to add text to an SVG drawing
with Inkscape, and be sure that it is rendered exactly
same in every platform, you need to convert it to a
path. This works, but of course you lose the actual
textual content, which for example search engines might
be able to read and index in some distant future.

Luckily, SVG specification gives the ability to specify
the font glyphs in the SVG file itself as SVG graphics.
I request that Inkscape be given an ability to generate
and embed these SVG fonts - that is, I could just
select text and select "embed SVG fonts for selected
text" or "embed SVG fonts for all text in document".

This shouldn't be too hard to implement, since it is
essentially the same that Inkscape already does when
converting text to path (I think - I haven't actually
read the code, it is beyond my abilities :( ).

Revision history for this message
Molumen (molumen) wrote :

Wonderful idea! it would be a big plus for the web use of svg.

Revision history for this message
pbhj (pbhj) wrote :

See <em>[ 1461865 ] Embedded Fonts</em>

Revision history for this message
Frederik Elwert (frederik-elwert) wrote :

Originator: NO

I just looked on the roadmap to see if this is planned for the foreseeable
future, but I haven't found it. I would second this request since it would
solve problems in at least two areas:

* Displaying of SVG images that contain text, especially on the web. One
could keep text as text (i.e., not convert it into paths), but still
display it correctly. Since drawings often make use of special fonts, this
much more a topic than with HTML pages that often use widely available
standard fonts.
For this, an option like "embedd subset of font" could keep the file size
low but ensure correct display. The file size would often be smaller than
with text converted to paths, since every glyph has to be embedded only
once.

* Collaborative editing, exchanging files. Inkscape now supports embedding
bitmap images, so the exchange of files has become much easier. But with
fonts, it's still difficult. Embedding whole fonts as SVG fonts would allow
one to exchange only the SVG file, while still being able to edit or add
text, without depending on the font beeing available on the current
system.

Could anyone give a hint how difficult this would be to realize or if it's
already planned? My guess would also be that the existing mechanisms in
Inkscape should make this not too hard, but I may be totally wrong.

nightrow (jb-benoit)
Changed in inkscape:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Tom Davidson (tjd-mit) wrote :

marked 17224 as a dupe of this one. At that bug, Juca pasted in a relevant transcript from the IRC channel:

Juca: svg fonts are definitelly an apealing feature to me. They seem to be very very useful for drawing semantics
[JonCruz] yes. they could be very handy
Juca: do you understand how pango works?
[JonCruz] I've done text stuff, but pre-pangofication
Juca: i was reading the svg fonts spec and then tryied to figure out how could it be implemented.
Juca: I see that the <font> tag declares a new family that is later referenced by text
Juca: so, I imagine that there must be a way of injecting arbitrary svg into pango's glyph slots and then instantiate a font and register it, so that it gewts recognized by a family name
Juca: but I have never dealt with pango
Juca: so I have no idea how do do it
[JonCruz] well... I'm thinking that we might need to inject curves, etc. and not SVG directly.
Juca: yeah, but it seems that the spec says the glyphs should be made of arbitrary svg
Juca: and I think pango may not be capable of dealing with everything that can be generated by an svg renderer
Juca: for example, can a glyph use an svg filter?
Juca: I think that it can. But how would pango deal with it?
[JonCruz] good question
Juca: maybe these aspects would make it necessary to build a parallel infrastucture for <font> tag

Revision history for this message
Tom Davidson (tjd-mit) wrote :

I'm merging in bug 166606 (which requests SVG font rendering support) here, so that the discussion of creation and rendering is not split across 2 lcoations.

At that bug Kidproto provides a sample document ( I have re-attached it here), and points to the relevant section of the SVG spec: http://www.w3.org/TR/SVG/fonts.html

Revision history for this message
MenTaLguY (mental-deactivatedaccount) wrote : Re: [Bug 170963] Re: Automatic generation of SVG fonts ?

There are two ways of specifying SVG font glyphs:

 1. use the d= attribute on <glyph> to specify the glyph outline

 2. use arbitrary SVG inside the <glyph> tag

The first is comparatively easy to do with a custom pango backend. In the second case we would probably have to create dummy glyphs with pango, and then substitute them for SVG fragments during rendering.

-mental

Revision history for this message
Tom Davidson (tjd-mit) wrote :

The open source program fontforge can be called from python: http://fontforge.sourceforge.net/python.html, and can convert between several font formats, including SVG fonts.

Once SVG font rendering is implemented in Inkscape, then embedding could perhaps be implemented as an Inkscape extension that calls Fontforge...

Revision history for this message
sas (sas-sas) wrote :

I marked a couple more bug reports as duplicates of this one, as this one appears to be the main one now.

This old comment of Bulia's is still relevant: https://bugs.launchpad.net/inkscape/+bug/170079/comments/1

Revision history for this message
Raphaël Pinson (raphink) wrote :

Any news on this bug? I don't anything about embed fonts in the roadmap on http://wiki.inkscape.org/wiki/index.php/Roadmap

Revision history for this message
su_v (suv-lp) wrote :

From the Release notes 0.47:
«Initial SVG Fonts support

As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of SVG Fonts. You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. We are waiting for libpango to implement proper support of the user-fonts feature. »
<http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Initial_SVG_Fonts_support>

Recent inkscape mailing list articles:
Subject: designing fonts within Inkscape
<http://article.gmane.org/gmane.comp.graphics.inkscape.devel/28511>
Subject: SVG Font Editor
<http://www.nabble.com/SVG-Font-Editor-to23574059.html>

tags: added: svg
Revision history for this message
SphereCat1 (spherecat1-deactivatedaccount) wrote :

I'm currently developing a website in SVG, just for the heck of it, but I have to convert the fonts into paths before they'll work in the browser, making it uneditable. This would make it the ultimate tool for me.

su_v (suv-lp)
tags: added: svgfonts
tags: added: bug-migration
Revision history for this message
grey tomorrow (gtomorrow) wrote :

Closing because INVALID: Duplicate/Similar issue (embedding fonts).

Please see https://gitlab.com/inkscape/inbox/-/issues/2244

Re: SVG fonts -- Inkscape 1.0

If you feel this issue has been unjustly closed, please feel free to open a new issue at https://inkscape.org/report . Thank you.

Closed by: https://gitlab.com/greytomorrow

Changed in inkscape:
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.