Information for New Users
This document is for both end-users and developers.
For other information, see the EMFexplorer overview.
EMFexplorer is an open source viewer/converter for Windows Enhanced Metafiles (EMF), standard Windows Metafiles (WMF), and their compressed forms (.emz, .wmz). The EMFexplorer project also includes an ActiveX component to display such files on HTML pages or forms.
Normally, Windows and MS Office can display EMF/WMF. So why bother writing a new viewer? The main challenge of EMFexplorer is to use GDI+ (Graphical Device Interface) to render documents with high quality. The following picture illustrates the point:
(by Adobe Acrobat)
(by Windows GDI)
Note: the example was chosen (images are not falsified) to make the point as clear as possible; of course not all GDI outputs are that bad.
EMFexplorer uses Microsoft GDI+ 1.0. However, it is not sufficient to pass the EMF to this library to get the result. A lot of treatment is necessary, hence the worthiness (I hope) of EMFexplorer.
Basically, EMFexplorer is developer-oriented.
Non-developers can use the binary version to create annotated image lists. Many of such image lists are given as illustration (most of them where created by friends who are not developers):
EMFexplorer is developed and tested on a Windows XP system. It also runs on Windows NT Sp5 or higher, Windows 98 SE.
Note: Page rotation won't work on Windows 98 (and, in general, complex transformations won't work on this system). For Windows NT5, it may be necessary to download additional files from Microsoft web site (gdiplus.dll, msimg32.dll).
EMFexplorer is written in C++ and MFC. To compile the source code, you'll need a Visual C++ compatible compiler (version 6 or higher). In addition, you'll need a Platform SDK containing the GDI+ headers, version 1.0 or later.
EMFexplorer is licensed under the GNU Lesser General Public License (GLPL), version 2. Read that license carefully. Here are some additional clarifications, which turn the GLPL into an Equity Public License (EPL):
*As everyone knows, a human being needs carbohydrates (or, if you prefer, potatoes, bread, etc.) to survive -- he can't assimilate sunlight energy directly, as does a vegetal --, and potatoes are not free. So GPL raises one question: how can a programmer survive if he gives all of his production for free? This is a question that open-software gurus can't answer. Other things they seem to forget: living is not theory, living is not even ethic, living actually requires energy transfer; and, once again, Alive-Intelligence comes from potatoes. If you agree with that, contact email@example.com.
Please take a look at the Donation Page.
The EMFexplorer distributions, either in source code or binary form, include libraries obtained from other parties. All the source files mentioned in this section are in the EMFexplorer source code distribution. The documentation of how to build EMFexplorer tells where to get these libraries and how to unpack them.
These samples or libraries do NOT fall under either the GNU License; they come with their own licenses, which also allow free use and redistribution under appropriate circumstances and which appear in the files mentioned just above. These libraries are entirely original works of their respective authors, and are provided AS IS with NO WARRANTY and NO SUPPORT.
Of course, Microsoft compiler, Platform SDK, GDI+ redistributable, and other MSDN documentation referenced in the project are not included in the distribution. Interested developers may contact Microsoft web site to know how to get them.
EMFexplorer is provided AS IS with NO WARRANTY and NO SUPPORT.
Companies that include EMFexplorer in their products under a commercial license (see next section) may offer support to end-users, but it would be support for the company's own product, not for EMFexplorer itself.
Nothing in the GNU license prevents anyone from providing support for EMFexplorer, either free or commercial. We would be happy to include in the EMFexplorer documentation the contact information for anyone who wants to offer such support.
If you absolutely need support, you may contact Smith Charles (firstname.lastname@example.org). But be informed that he may say this: "EMFexplorer is free, not my time".
GLPL applications, like EMFexplorer, may be incorporated into commercial products. It is your responsibility to analyze if every part of EMFexplorer can be incorporated into your commercial product. Read the (License and distribution) and the (Third-party libraries) sections. The GLPL applies only, and exclusively, to the parts we have written.
A slight change introduced by Smith Charles into the GLPL turned it into EPL (Equity Public License). The essence of EPL is this: "it would be a shame to see the author calling for donators while others are wining potatoes with his work; so a commercial use should introduce donation in your business model".
The latest version is available available in the "downloads" section at:
Source code and several precompiled executables are available.
Soon: announcements of new versions will be posted to several newsgroups.
This version 1.0.beta has no installer/uninstaller program.
Just copy the binaries, or unpack the file, in a directory of your choice.
Then launch EMFexplorer.exe at least once so that it can register its active document mime type (wont work on NT/XP if you don't have administrator privilege).
For the ActiveX compoment, SCEMFAx.ocx, you must use the installation file (axinstall.bat) before you can view EMG documents in an activex-compatible browser. Note: your system must contain a file named regsvr32.exe.
To remove the product:
Note: on NT/XP you must be logged as an administrator to register/unregister some features (mime type for example). The program should continue to work without these features.
Just unpack the file in a new directory. See (how to build EMFexplorer) for more information.
Once the application is launched, drag and drop one or more files on it, and enjoy!
See the separate file, BUILD.txt.
The list of Frequently Asked Questions (FAQ) is available at:
The maintainers of EMFexplorer can't help you with user-maintained code.
For now, to report a problem, send a mail to email@example.com. See the section "how you can help".
The most valuable thing you can do to help improve EMFexplorer is to help testing it. If you find a bug in EMFexplorer, i.e., if it displays an error message, crashes, or incorrectly displays a document, and you don't see that bug listed on this site, please send me email (saying "It's full of stars!", as if you were Dave Bowman), with a pointer (URL, ftp site, etc.) to the EMF/WMF file. But remember that EMFexplorer comes with NO WARRANTY and NO SUPPORT. Most likely, the information you provide will be used to feed the FAQ or Issues pages.
If you are a programmer, you can solve one or more of the issues marked as "TODO" in the source files.
If you are not interested in testing or programming, and still want to help, you can donate money or resource (web hosting, etc.). Read my opinion about potatoes in the (License and Distribution) section.
EMFexplorer contains Zlib (Jean-loup Gailly, Mark Adler): http://www.gzip.org/zlib/
EMFexplorer contains an algorithm for polypolygon from xPDF: http://www.foolabs.com/xpdf/
Parts are from MSDN (Microsoft): http://www.microsoft.com/
Some images where taken from AFPL Ghostscript: http://www.ghostscript.com/
Some images where taken from PS2Edit: http://www.pstoedit.net/pstoedit/
Note: people or companies listed here have no responsibility of any kind in EMFexplorer.
Copyright © 2004 Smith Charles. All rights reserved.
This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of the license contained in the file LICENSE in this distribution.
EMFexplorer version 1.0.beta, 15 September 2004.