Back

darobin on 2003-01-22T10:29:55

I made it back from Down Under, too soon. By now there is probably little that I hate more than flying, but apart from that I'm ok, and quickly de-jetlagging. Uh, it's a bit depressing being back into the winter though.


Sydney

gtod on 2003-01-22T12:00:51

I too wistfully miss that warmer Australian weather especially at this time of year in the UK.

In your previous entry you mentioned minutes of a meeting at which SVG issues of kerning and ligatures etc. were discussed - where might those be published? I'm fascinated by SVG but come from a Postscript/PDF perspective and am trying to get a handle on SVGs capabilities/limitations WRT text layout, fonts, presentation quality etc.

Re:Sydney

darobin on 2003-01-22T13:39:06

They'll be published as soon as I'm done cleaning them up :) However I doubt you'll find them of much interest as such though. They are minutes of a live discussion addressing for the most part what happens if a user has defined a ligature in an SVG font that crosses bidi boundaries. It won't give you a good idea of what SVG can do.

As for what SVG can do, well, it's pretty much powerful like hell. I'm biased of course, but speaking the truth nevertheless ;) The next big step for printers is to start being able to take SVG directly, using that preferentially to Postscript. I guess that should answer much of your question :)

SVG can do a lot of highly precise text layout, however it does not yet include text flow and wrapping (you have to do it yourself). SVG 1.2 will be able to flow text through arbitrary shapes (including quad paths and friends).

Where fonts are concerned, SVG can of course use system fonts, but more interestingly allows one to define one's own fonts using SVG, including ligatures, kerning, etc. Because SVG supports SMIL animation, you can even have animated fonts (if you really want people to hate you that is). I keep threatening to come up with a torture tester of an animated text on an animated path rendered using animated glyphs with animated pattern fills and gradients, and of course animated filters with complex compositing (SVG has raster filters applicable to vector stuff). Hmmmm, I might actually do it at some point...

As for presentation quality, well, you can hardly get any better than what SVG offers. You have control over pretty much every aspect of rendering.

Don't hesitate to ping me if you have any questions. You should definitely try SVG out seriously :)

Re:Sydney

Matts on 2003-01-22T14:27:39

The biggest problem IMHO is that the renderer (or at least the only widely available one - Adobe's) sucks big time. Especially when it comes to performance. The performance of Adobe's SVG viewer is appalling - start doing any simple animation (e.g. making a transparent box slowly appear) and it stutters and slows down and uses 100% CPU. Render a large viewbox and try moving it around with alt-click-drag and it slows to a crawl. Not just the speed but the bugs mean that you can't just stick to the spec - you have to work around ASV's bugs - like not being able to specify animation in a <defs> section.

Until these performance and other problems get fixed SVG remains fairly niche IMHO. And it's fairly pointless advancing forwards with the spec until support is there for the current specs!

Re:Sydney

darobin on 2003-01-22T14:44:24

Such bold and isolated statements need be qualified. The Adobe SVG Viewer is slow on Linux, where it is unsupported, for Matt. Lack of official support for Linux is a pain, but on your average mac or windows performance is excellent until you push it too far.

And ASV has very few bugs, you just happened to bump into one (I know, I was there!).

Support is there for the current spec it takes two independent implementations for any feature to make it into the spec. You are being of terrible bad faith. SVG is here, it's fast, it's stable, it's available on a wide array of platforms including many mobile ones, and more than that it's already being used in segments of reality much larger than niches.

Re:Sydney

Matts on 2003-01-22T15:03:33

I'm using it on the Mac, and it's slow. I also use it on my windows laptop, and it's slow. And you've seen my code - it's not pushing SVG to the limits in any sense of the word.

Re:Sydney

darobin on 2003-01-22T15:09:47

You always complain that things are slow anyway =P It Is Not Slow For Me, including on my old dirty laptop, so that's ok :)

Re:Sydney

Matts on 2003-01-22T15:31:44

No that's not really the point though. If it's slow for me doing a simple "show a box and highlight a line" then it's going to be slow in a lot more areas too (I can't even begin to imagine it replacing flash for anything animated), and if I find it slow on hardware bought this summer then my original statement is going to stand quite firmly.

Re:Sydney

darobin on 2003-01-22T15:40:46

ASV is slow on animated text, especially if it involves opacity. Full stop. CSV, in my limited testing, is not (but you need to grab a non-debug build, which isn't available at this point). Your statement is based on a single experience with a single file. Having developed much larger GUIs using SVG only, and on a modest box, I know it's fast and smooth.

Have you tried making the animation last less long? That might make it faster =}

Re:Sydney (SVG now)

gtod on 2003-01-22T14:39:38

Thanks for the generous reply!

I'm writing a tool a developer would use to create a data driven report. For previous generations of this tool I've emitted PDF. Now I think SVG might be better - especially for web presentation.

The other thing you want to do is print these reports - it would be great if printers could consume SVG but for now I'm not troubled as I imagine it wouldn't be too hard to write a special case svg2ps converter (at least for the SVGs my tool is authoring).

The big issue seems to be to be fonts. Assuming I'm a developer using this SVG creation tool of mine can I use a font I've got installed on my system (say Type1 Garamond) to precisely control the formatting of text in my SVG output file? I'm talking inter-letter and inter-word spacing and kerning. This is (of course) what you can do in PDF. If the answer is yes - great news! It is given that my tool uses the the font metric files to do all the precise positioning - that's no problem. However if there are no inter-letter and inter-word spacing operators you end up having to individually position every character for full justification -which might be too ugly for my liking...

Now if I send this SVG file to someone who does not have Garamond installed - can I embed the font in the SVG file as I can with PDF to ensure perfect fidelity?

I think I'm a bit confused on the SVG font issue because the spec refers to the CSS2 font mechanism which means nothing to me. And then there's this page which is a bit scary: SVG fonts shame

Re:Sydney (SVG now)

darobin on 2003-01-22T14:55:50

It's hard to tell if SVG is or not right for what you are looking for, at least until the next version. Spacing and kerning can be controlled to a degree but using a system font, depending on how much control you want you may have to go to absolute positionning of individual glyphs.

What yo umight want to do there is use the system font to SVG font converter that ships with Batik and use that to get an SVG font over which you then have full control. That's the way in which fonts are embedded into SVG anyway (I think that the ASV has an extension for CEF fonts but I'm not certain and in any case it's not portable).

The document you mention is old, it dates back to the requirements of SVG 1.0, last millenium :) Since then, many things have changed, including the ability to use SVG to define SVG fonts. WebFont is still used when you don't embed your SVG font, because it's a good compromise of a scheme if you don't want to ensure rendering consistency. However if you do want consistency, you should have all that you need.

If you find something you need that isn't there at all, remember that the SVG WG is a very open group that can spend hours internally discussing a suggestion from any end user, so don't hesitate to post.

svg2ps should be easy enough to write, if it hasn't been already (I know there's a pdf2svg somewhere).