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:

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.

News & Notes

Downloads & Development

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!)

Source tar-balls can be downloaded from SourceForge, or possibly from my website.

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, not libwmf 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.

As you can see: Lots to do! Feel free to help out.


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.

Other contributors include Raj Manandhar, Steven Michael Robbins, Bob Bell and Albert Chin. Also, Benjamin Geer, Peter Ohlerich, Steve Oney and Michael Cree have helped with debugging.

Finally, special thanks to Dom Lachowicz for all sorts of reasons.


Francis James Franklin

(Past & Present)

Francis James Franklin
Martin Vermeer
Caolán McNamara (original author)

Other Links

SourceForge Logo

The wvWare project is hosted on SourceForge.
View the Project Summary there.