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:
-
it's Open Source: free as in freedom! You can explore
the sources and make your own modifications (see the license);
- 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;
- very
easy to install
and use (and also to uninstall actually!);
- 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.
For maximum fairness, I'm listing here also the main problems afflicting this project:
-
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;
-
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;
-
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.
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.
Links
Other similar Open Source projects:
Software capable of editing EMFs:
-
Adobe Illustrator and CorelDraw: commercial software; very good support for EMFs both for loading (all objects become editable) and saving (e.g. you can use it to convert EMFs to SVG or EPS)
-
Inkscape: open source software; theorically supports it but in practice loading doesn't work well.
-
MetaDraw: a commercial (OCX or .NET) component for programmers to manipulate meta files (WMF, EMF, and more).
-
HS Editor: a commercial editing component which saves results as WMF or EMF.
Other utilities:
-
AutoTrace for transforming
raster images to vector ones
-
VectorMagic; a web-service for transforming
raster images to vector ones
-
Delineate another raster-to-vector converter
- Michael H. Overlin's
PosterPrinter: I used it as codebase for this project and even if
I changed almost any source line, it was indispensable - thanks Michael!
Miscellaneous websites:
-
Undocumented Printing provides technical info
about some undocumented aspects of Windows Spooler and EMF files and more.