EmfPrinter by Francesco Montorsi

Contents of this page

» What is it? «
» Why EMF? «
» Supported formats «
» License «
» Downloads «
» Development «
» Bugs&patches «
» Links «

What is it?

EmfPrinter is a virtual printer driver for Windows 2000 and Windows XP, which allows you to create EMF (Enhanced Meta File) and WMF (Windows Meta File - the old version of EMF) vector images from any Windows application which supports printing.
Additionally, the printer also supports more than 100 raster formats (PNG, JPG, TIFF, BMP, etc) in case you don't need vector images.

Some nice things about this virtual printer:
  1. it's Open Source: free as in freedom! You can explore the sources and make your own modifications (see the license);
  2. it exports data directly in a vector format, without rasterizations; for more info about the difference between raster and vector formats, please see the Wikipedia;
  3. very easy to install and use (and also to uninstall actually!);
  4. include all the utilities you need to edit the EMFs or to print directly in raster formats, if you really need, which are much easier to edit.
Screenshot of EmfPrinter
For maximum fairness, I'm listing here also the main problems afflicting this project:
  1. it doesn't support Windows Vista and Windows 7, neither 32 bit nor 64 bit versions; I spent various time on EmfPrinter and it now compiles under 64bit but there are lots of other troubles to tackle with and I'm not really motivated to face them;
  2. EMF is not strongly supported anymore since Windows Vista; XPS is the new format Microsoft is pushing and the EMF format will probably fade away in the time surpassed by open formats like SVG and XPS; see the TODO for more info;
  3. it's affected by some important bugs and when you install it, you do it at your own risk;
In conclusion, basically EmfPrinter allows you to add a "Save as" command which supports EMF, WMF and lots of raster formats to all Windows application which have supports printing. For a complete list of supported formats see below.

Why EMF?

Why export printed data in EMF instead of another vector format, much more widespread like SVG? It's simple: the Windows GDI printing system provides data to the printer drivers directly in EMF format; thus it's "easy" to extract EMFs from printed data using a virtual printer driver.

EMF is an undocumented format (for the few reverse-engineered infos look here) which however is very easy to render on Windows and is supported by all programs of the Microsoft Office suite and many others. Unfortunately it's also very difficult to edit preserving its "vectorness".

That's also why a TODO item for this project is to support also the SVG format one in day in future; it's an Open format and is supported by the famous free vector editor InkScape.

Supported formats

The list of vector formats currently supported is: EMF, WMF (SVG is work-in-progress!).

The complete list of raster formats supported (thanks to ImageMagick!) is:
AVS, BMP, BMP2, BMP3, CIN, CIP, CLIP, CMYK, CMYKA, CUR, DCX,
EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3,
FAX, FITS, FTS, G3, GIF, GIF87, HTM, HTML, ICB, ICO, ICON,
INFO, IPL, JNG, JP2, JPC, JPEG, JPG, JPX, M2V, MAP, MAT,
MATTE, MIFF, MNG, MPC, MPEG, MPG, MSL, MSVG, MTV, MVG,
OTB, PAL, PALM, PAM, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF,
PFM, PGM, PICON, PICT, PJPEG, PNG, PNG24, PNG32, PNG8, PNM,
PPM, PS, PS2, PS3, PSD, PTIF, RAS, RGB, RGBA, RGBO, SGI, SHTML,
SUN, SVG, SVGZ, TEXT, TGA, TIFF, UIL, UYVY, VDA, VICAR, VID,
VIFF, VST, WBMP, X, XBM, XPM, XV, XWD, YCbCr, YCbCrA, YUV

License

The license is the GNU General Public license version 2.
There is a FAQ (frequently asked questions) page on the GNU website which can help you understand the terms of the license: http://www.gnu.org/licenses/gpl-faq.html.

Downloads

The EmfPrinter installer and sources can be downloaded from SourceForge's download page.

For a brief changelog of the new version you can look here...

Development

If you are a developer and you are interested to EmfPrinter please consider the idea of providing patches/help with the TODO items... the author has vey few free time and further development isn't going to happen soon.

I strived to make the code as easier as possible to build and extend; it has no external dependencies, is written completely in C/C++ and just requires a good setup of your build environment. You can browse the sources here.

Bugs, Patches

For reporting bugs and patches please look at the SourceForge project page.

Other similar Open Source projects:

Software capable of editing EMFs:

Other utilities:

Miscellaneous websites:


SourceForge.net Logo Support This Project