-
Notifications
You must be signed in to change notification settings - Fork 11
Pure Python Enhanced Metafile Library
License
jeremysanders/pyemf3
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
pyemf3 is an updated version of pyemf with support for Python 3.3+ Original author: Rob McMullen Updater to Python 3: Jeremy Sanders ABSTRACT ======== pyemf3 is a pure python module that provides bindings for an ECMA-234 compliant vector graphics library. ECMA-234 is the published interface for the Windows GDI used in the Microsoft windows environment and, more importantly, natively supported by the OpenOffice suite of tools. http://www.ecma-international.org/publications/standards/Ecma-234.htm PREREQUISITES ============= python3 (tested with python 3.10) QUICK INSTALL ============= python3 setup.py install FEATURES ======== Most of the drawing methods of ECMA-234 are supported by pyemf3. Supported --------- Drawing parameters: GetStockObject, SelectObject, DeleteObject, CreatePen, CreateSolidBrush, CreateHatchBrush, SetBkColor, SetBkMode, SetPolyFillMode Drawing primitives: SetPixel, Polyline, Polygon, Rectangle, RoundRect, Ellipse, Arc, Chord, Pie, PolyBezier Path primitives: BeginPath, EndPath, MoveTo, LineTo, PolylineTo, ArcTo, PolyBezierTo, CloseFigure, FillPath, StrokePath, StrokeAndFillPath Clipping: SelectClipPath Text: CreateFont, SetTextAlign, SetTextColor, TextOut Coordinate system transformation: SaveDC, RestoreDC, SetWorldTransform, ModifyWorldTransform Experimental ------------ Window/Viewport commands: SetMapMode, SetViewportOrgEx, GetViewportOrgEx, SetViewportExtEx, ScaleViewportExtEx, GetViewportExtEx, SetWindowOrgEx, GetWindowOrgEx, SetWindowExtEx, ScaleWindowExtEx, GetWindowExtEx Unsupported ----------- Palettes Bitmaps Text metrics DOCUMENTATION ============= The most current documentation is always available on the web at $url/api/index.html Or, in the source distribution, the directory website/api/ contains a copy of the api documentation for version $version. Simply point your web browser at the index.html within that directory. EXAMPLES ======== Creating an EMF --------------- Here's a simple program (available as test-1.py in the distribution) that connects opposite corners of an 8in by 6in rectangle with lines: #!/usr/bin/env python3 import pyemf3 width=8 height=6 dpi=300 emf=pyemf3.EMF(width,height,dpi) thin=emf.CreatePen(pyemf.PS_SOLID,1,(0x01,0x02,0x03)) emf.SelectObject(thin) emf.Polyline([(0,0),(width*dpi,height*dpi)]) emf.Polyline([(0,height*dpi),(width*dpi,0)]) emf.save("test-1.emf") Other tests ----------- There are many other tests included in the examples/ directory in the source distribution. After installing the pyemf3 library, you should be able to run them like this: $ cd examples $ python test-drawing1.py and examine the output file 'test-drawing1.emf' by loading it in OpenOffice Impress. Also included in the examples directory is the program 'test--run-all.py' that will run all the tests.
About
Pure Python Enhanced Metafile Library
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published