Support SVG Export

44 views
Skip to first unread message

Jeff Schiller

unread,
Feb 3, 2010, 3:59:41 PM2/3/10
to us...@tortoisesvn.tigris.org
It came to my attention that TortoiseSVN can export WMF for the tree/history. [1]

Would it be possible to support export of SVG?

Regards,
Jeff Schiller

P.S. I couldn't figure out how to sign up for the Bug Tracker for TortoiseSVN.

[1] http://groups.google.com/group/svg-edit/browse_thread/thread/d9617c2ab52db507

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2444609

To unsubscribe from this discussion, e-mail: [users-un...@tortoisesvn.tigris.org].

Jeff Schiller

unread,
Feb 3, 2010, 4:28:04 PM2/3/10
to us...@tortoisesvn.tigris.org
Looks like there are several options:

* use a library that converts from WMF to SVG. Some links here: http://openclipart.org/wiki/SVG_Tools
* use something like this to convert GDI+ directly to SVG: http://www.jbrowse.com/svgnet/

(I would prefer the more direct approach as it seems that conversion from WMF might introduce errors)

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2444619

Simon Large

unread,
Feb 3, 2010, 4:59:49 PM2/3/10
to us...@tortoisesvn.tigris.org
On 3 February 2010 21:28, Jeff Schiller <code...@gmail.com> wrote:
> Looks like there are several options:
>
> * use a library that converts from WMF to SVG.  Some links here: http://openclipart.org/wiki/SVG_Tools
> * use something like this to convert GDI+ directly to SVG: http://www.jbrowse.com/svgnet/
>
> (I would prefer the more direct approach as it seems that conversion from WMF might introduce errors)

Thanks for doing some initial research; that always helps when
proposing something new.

I had a quick look at the links. SVGNet is written as C# and I'm not
sure how that fits with the rest of the C++ application. Also it was
last updated in September 2003, so not what you call supported.

libwmf proclaims itself as alpha quality and was last released in December 2002.

The only one that looks promising is Cairo, and that would require
rewriting everything that currently uses GDI+ to use Cairo instead. Or
am I missing something?

Oh, there is a Windows executable at the bottom of that page which
will do batch conversions. Source is available. It's very much a
command line utility, so integrating it would take some work.

Are you volunteering?

Simon

--
: ___
: oo // \\ "De Chelonian Mobile"
: (_,\/ \_/ \ TortoiseSVN
: \ \_/_\_/> The coolest Interface to (Sub)Version Control
: /_/ \_\ http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2444632

w0rms

unread,
Feb 3, 2010, 7:12:50 PM2/3/10
to us...@tortoisesvn.tigris.org
Stephen Silver's WMFtoSVG utility at the bottom of the page
http://openclipart.org/wiki/SVG_Tools is what I tried to use on the TortoiseSVN WMF file, it failed saying the file was not a WMF file. :-(

I tend to think there is something - maybe related to fonts - in the file which makes most WMF-capable software unhappy (Inkscape, PSP, WMFtoSVG).

Someone owning Illustrator did the conversion though, so the "error" is not unrecoverable. Maybe it would be possible to contact S. Silver and see if he can help with the original TortoiseSVN file format?

(Then a conversion inside TSVN would be handy!)

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2444674

Stefan Küng

unread,
Feb 5, 2010, 2:04:45 PM2/5/10
to us...@tortoisesvn.tigris.org
On 04.02.2010 01:12, w0rms wrote:
> Stephen Silver's WMFtoSVG utility at the bottom of the page
> http://openclipart.org/wiki/SVG_Tools is what I tried to use on the
> TortoiseSVN WMF file, it failed saying the file was not a WMF file.
> :-(
>
> I tend to think there is something - maybe related to fonts - in the
> file which makes most WMF-capable software unhappy (Inkscape, PSP,
> WMFtoSVG).
>
> Someone owning Illustrator did the conversion though, so the "error"
> is not unrecoverable. Maybe it would be possible to contact S. Silver
> and see if he can help with the original TortoiseSVN file format?

Import the wmf in OpenOffice Draw, then export it as an svg file.

Stefan

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2445224

w0rms

unread,
Feb 6, 2010, 7:07:14 AM2/6/10
to us...@tortoisesvn.tigris.org
Thanks for the tip, I had forgotten about OpenOffice!

Unfortunately, the generated SVG isn't really "neat", there really seems to be a problem with the fonts :-(

http://imgh.us/r1302_OpenOffice_svg.svg

Exporting directly to SVG (with the proper converter/thing) would be better! :-)

N.B.: I also tried to use the most recent Batik transcoder, but I'm unable to find how to use it/program it...

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2445401

Helder Magalhães

unread,
Feb 15, 2010, 12:05:46 PM2/15/10
to us...@tortoisesvn.tigris.org
I'm arriving somehow late to the debate, and am replying at once to several of the thread's messages, so sorry if it sounds weird... ;-)

[codedread]


> It came to my attention that TortoiseSVN can export WMF for the tree/history.

> Would it be possible to support export of SVG?

I'm using TSVN for a more than a couple years now and never had noticed the neat WMF export, so well spotted, Jeff. ;-)

But I haven't been using the tree/history features much, so this may be something worth investigating... :-)


Can you disclose on the use-case(s) a bit? Simply allowing direct SVG export (as a simple a feature enhancement basis, for convenience) or exporting this information for "real" use in SVG-Edit, I'm guessing...? (For documentation, visual evolution of source code, etc.) ;-)

[codedread]


> Looks like there are several options:
> * use a library that converts from WMF to SVG. Some links here: http://openclipart.org/wiki/SVG_Tools
> * use something like this to convert GDI+ directly to SVG: http://www.jbrowse.com/svgnet/
> (I would prefer the more direct approach as it seems that conversion from WMF might introduce errors)

+1 on directly exporting to SVG. :-)

I've taken a quick look to SVGNet and it really seemed in scope here...

[simonlarge]


> I had a quick look at the links. SVGNet is written as C# and I'm not
> sure how that fits with the rest of the C++ application.

Too bad for SVGNet being in C#... :-|

Maybe one could use it as template and "unsharp" it. :-)


> Also it was
> last updated in September 2003, so not what you call supported.

Note that SVG is around for a while (since 1999~2000) so a library of 2003 can be either outdated or simply rock stable. I haven't dig down which of the two! ;-)


> The only one that looks promising is Cairo, and that would require
> rewriting everything that currently uses GDI+ to use Cairo instead. Or
> am I missing something?

I guess such a rewrite wouldn't be necessary. I've crawled a bit in TSVN source code and I've narrowed the thing to CRevisionGraphWnd::SaveGraphAs (around line 780 of src/TortoiseProc/RevisionGraph/RevisionGraphWnd.cpp [1]). It seems that there's a neat file abstraction for WMF, CMetaFileDC [2], which takes care of "drawing" stuff to a buffer which is then serialized to file.

Taking from Robin Berjon's Canvas-SVG Bridge [3], which is basically this applied to HTML5 Canvas, it should be fairly easy to build such thing. :-)


> Are you volunteering?

Not sure about Jeff, but if someone would find/take the time to build such project, I'm volunteering to help develop/test text support: I'm aware that this is one of the hardest/trickiest things to put together. :-)

[w0rms]


> N.B.: I also tried to use the most recent Batik transcoder, but I'm unable to find how to use it/program it...

AFAIK, there's not a straight application for using the WMF transcoders shipped with Batik. Probably one will need to provide the glue for using the provided API [4]. ;-)

Cheers,
Helder

[1] http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/src/TortoiseProc/RevisionGraph/RevisionGraphWnd.cpp (use guess:"" as credentials)
[2] http://msdn.microsoft.com/en-us/library/427wezx1%28VS.80%29.aspx
[3] http://berjon.com/hacks/canvas-getsvg/
[4] http://xmlgraphics.apache.org/batik/using/transcoder.html

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2447788

Reply all
Reply to author
Forward
0 new messages