libwmf - library for converting WMF files

libwmf is a library for reading vector images in Micros°ft's native
Wind°ws Metafile Format (WMF) and for either (a) displaying them in, e.g., an
X window; or (b) converting them to more standard/open file formats such as,
e.g., the W3C's XML-based Scaleable Vector Graphic (SVG) format.
Currently bindings exist for conversion to:

the following vector image formats:

(& Encapsulated) PostScript (EPS & PS)

Facility for Interactive Generation of graphics (FIG)

Scaleable Vector Graphic (SVG)

the following raster image formats:

Portable Network Graphics (PNG)

Joint Photographic Experts Group (JPEG)

libwmf is officially alpha quality code, and is likely to stay that way, but is
already usable and the Application Programming Interface (API) is
approaching stability.

It is released under the GNU Lesser (Library) Public License (LGPL) which
means that linking against the shared library is unrestricted. Note, however, that
if/when the module system is implemented, certain modules may be available under different
licenses - please refer to the module in question for licensing restrictions, if any.

Some simple utilities are included in the libwmf distribution for converting WMF
files to the various output formats supported, the main intended use of the library is as
a graphics import filter for word processors (release libwmf-0.2.0 is supported by
release wv-0.6.5; wv is libwmf's sister project) and
imaging applications (libwmf-0.2.2 and later are currently supported by
ImageMagick; also, support for libwmf-0.2.*
has been added into sodipodi). Already
AbiWord uses wv as an import filter for MSW°rd
documents (which often contain WMF images), and the grand plan is for AbiWord
to use libwmf to convert WMF images to SVG.

Well the interim release started a whole interim release series - 0.2.6,
0.2.7, even a 0.2.7-2 (whatever that was) - and now a 0.2.8. A lot of
development code for writing metafiles (completely untested!)
was added in 0.2.7, and one day I may find the enthusiasm to finish that
up... 0.2.8 owes much to Dom - the Dom, yes - with the addition
of a gdk-pixbuf loader - very cool!

15th May, 2002

libwmf-0.2.5 (a.k.a. 'Poly the ex-Parrot') released:

This is an interim release, largely unintended. libwmf-0.2.3 & 0.2.4 do not
exist, so please don't go looking for them. Dr Livingstone tried, and you know
what happened to him.

The major change is that libwmf now builds as two libraries:

libwmflite - the parser itself

libwmf - utility functions, device layers, etc.

Special thanks to Michal Jaegermann for teaching me how to write RPM spec
files.

Finally, Bob Friesenhahn has done a lot of work getting ImageMagick to work
with libwmf. For best possible rendering of WMF images, I recommend you use
ImageMagick rather than the libwmf utilities.

29th October, 2001

libwmf-0.2.2 released:

While there have been some improvements to text placement and rendering in
the X and gd layers, most changes are in the configuration. (It is now
possible to build libwmf without any device layers, but this has not been
tested extensively and is not recommended for general use.)

Special thanks to Bob Friesenhahn, Leonard Rosenthol, David C Sterratt and
Tomasz Koczko.

Hopefully this release will build on Solaris. My apologies to everyone who
had problems with libwmf-0.2.1.

22nd August, 2001

In adherence with the ancient philosophy of `It's my birthday and I'll release
if I want to,' today, August 22nd 2001, sees the release of libwmf-0.2.1,
a.k.a. `The Inspector General's Nose'.

I was, in fact, tempted to call it version 0.3.0, but I've been calling it
0.2.1 for so many preview snapshots that, well, to do otherwise now would seem
like a betrayal.

Having just taken over maintainership of libwmf from Martin Vermeer, I would like
first of all to thank him (a) for all the work he's put in (despite claims to the contrary)
to the project, and (b) for giving me this opportunity (good for my ego, good for my
CV...).

I would like to thank Anil Madhavapeddy who has added libwmf2 to the
OpenBSD ports collection.

Also, I would like to thank Michael Cree for his patience. CVS libwmf2 now
builds & executes on Tru64, and the fig device layer is being given a good
ironing.

At the moment I'm working on cleaning up the code and adding write-to-memory ability where
possible, which means (unfortunately) that there will be a slight incompatibility
between versions 0.2.0 & 0.2.1, but the API should stabilize at that point.

libwmf and her sibling wv form the wvWare project, which is hosted on
SourceForge. The Project Summary
has links to forums and e-mail list archives. If you have questions or encounter
difficulties, or even if you're quite happily using libwmf, then please contact us
(or me personally, if you prefer). I'm always happy to help - so long as you don't expect
immediate results. (I do have a day job, after all!)

Harald Welte of gnumonks has made some
RPMs of the libwmf-0.1.* series.

And Kees Zeelenberg keeps up-to-date Wind°ws ports of libwmf available as part
of the GnuWin32 project.

libwmf is in CVS under the module name libwmf2,
notlibwmf which is the libwmf-0.1.* series and no longer in active
development.

There's lots of stuff to do. The TODO file lists stuff that ought to have been done
by now, particularly ROP and transparency and so on. Basically it's stuff that I consider
non-critical - but, then, my interest is more in the programming than the end use. If you
have specific concerns, then talk to me.

My personal goals are: best-possible WMF to
SVG conversion, and importers for sodipodi and AbiWord; a more formal
(less libwmf-specific) IPA (the API between the interpreter and the
various device layers); a front end for GNOME; and a Cocoa/Quartz device layer
and front end for Mac OS X. Not necessarily in that order.

Other plans that have been
suggested for libwmf are (a) the ability to export to Wind°ws Metafile Format, and
(b) support for Extended Metafile Format (EMF) and perhaps also Computer Graphics
Metafile (CGM) format.

Export to PNG and JPEG uses Thomas Boutell's
GD library. Font support in GD and in
libwmf is provided by the FreeType
library. Also deserving of credit are:
allegro;
Gdtclft;
wine;
and Bjorn Reese and Daniel Stenberg for trio.

Caolán McNamara was original author
of libwmf, and although I have reworked much of it the core of the interpreter (i.e.,
the most important part) owes everything to Caolán.

Export to FIG format (readable/editable by xfig) was added by
David Airlie, FrÚdÚric Vivien and
Martin Vermeer.

Bob Friesenhahn linked libwmf into ImageMagick, so now you are able to
convert WMF files to anything ImageMagick supports using the handy
ImageMagick command syntax.