Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wojciechmula/canvas2svg
Save Tk canvas in SVG
https://github.com/wojciechmula/canvas2svg
canvas conversion python svg tkinter
Last synced: 19 days ago
JSON representation
Save Tk canvas in SVG
- Host: GitHub
- URL: https://github.com/wojciechmula/canvas2svg
- Owner: WojciechMula
- License: bsd-3-clause
- Created: 2013-07-23T20:14:14.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-12-23T11:13:22.000Z (almost 4 years ago)
- Last Synced: 2024-10-05T06:56:20.704Z (about 1 month ago)
- Topics: canvas, conversion, python, svg, tkinter
- Language: Python
- Homepage:
- Size: 66.4 KB
- Stars: 21
- Watchers: 6
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Tkinter canvas to SVG exporter
========================================================================This module provides function ``convert`` that convert all or selected
items placed on given canvas object.Supported items:
* lines
* lines with arrows
* polygons
* smoothed lines and polygons
* ovals (i.e. circle & ellipse)
* arcs (all kind, i.e. ARC, CHORD, PIESLICE)
* rectangles
* text (**unwrapped** only i.e. attribute ``width = 0``)Unsupported items:
* images
* bitmaps
* windowsStipples are not applied.
Public functions
------------------------------------------------------------------------``convert(document, canvas, items=None, tounicode=None)``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* ``document`` --- SVG document, object that support DOM, i.e. provides
``createElement`` method etc. (function ``SVGdocument`` can be used
to get such object)
* ``canvas`` --- Tkinter.Canvas object
* ``items`` --- list of objects to convert; if ``None`` then all items
are converted
* ``tounicode`` --- user function that should return proper unicode
string if Tkinter app use other then ASCII encoding. By default
``tounicode = lambda text: unicode(text).encode('utf-8')``.
Thanks to **Jan Böcker** who provided solution.``SVGdocument``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Takes no arguments, returns SVG document; class provided in standard
``xml.dom.minidom`` module is used.``saveall(filename, canvas, items=None, margin=10, tounicode=None)``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Helper function: saves whole canvas or selected items in SVG file,
sets proper dimensions, and viewport; additional ``margin`` can
be set.``warnings(mode)``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Module might emit warnings. By default it use custom function which
prints message on the standard error. You can change this by calling
method ``canvasvg.warnings(mode)`` with three possible values:* ``canvasvg.PYTHON`` --- use ``warn`` from the standard module
``warnings``;
* ``canvasvg.MODULE`` --- use the custom function;
* ``canvasvg.NONE`` --- do not print any message.``configure(*flags)``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~Module might use either ```` or ```` tag for segment
representation. By default it uses ````. The behaviour could be changed
globally by calling ``canvasvg.configure(*flags)`` with one of consequent
values:* ``canvasvg.SEGMENT_TO_LINE`` --- use ```` tag;
* ``canvasvg.SEGMENT_TO_PATH`` --- use ```` tag.Changelog
------------------------------------------------------------------------Below are major changes made before moving on Github__.
* 2013-07-23 --- support for "raw" smoothed lines (contributed by Marc Culler, author of plink__)
* 2011-02-20 --- python3 compatibility
* 2011-01-25 --- update ``saveall``: use list of items to export
* 2008-11-08 --- added ``tounicode``, optional argument
* 2006-12-01 --- initial release__ https://github.com/WojciechMula/canvas2svg
__ http://www.math.uic.edu/t3m/plink/doc/