diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2020-04-01 18:50:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-01 18:50:14 +0200 |
| commit | facf1817927be7e0905dc398aa53464a4f244826 (patch) | |
| tree | e480054db8e7d2106b20077abaa04197dc242e66 | |
| parent | 13f93ea1515c296335874552930bb2f5f14f977d (diff) | |
Option to include SVG in ZIP file (#648)
| -rw-r--r-- | lib/extensions/zip.py | 15 | ||||
| -rw-r--r-- | templates/zip.inx | 5 |
2 files changed, 15 insertions, 5 deletions
diff --git a/lib/extensions/zip.py b/lib/extensions/zip.py index 2376f79a..8ff2cb5c 100644 --- a/lib/extensions/zip.py +++ b/lib/extensions/zip.py @@ -1,14 +1,16 @@ -import sys import os +import sys import tempfile from zipfile import ZipFile + +import inkex import pyembroidery -from .base import InkstitchExtension from ..i18n import _ from ..output import write_embroidery_file from ..stitch_plan import patches_to_stitch_plan from ..svg import PIXELS_PER_MM +from .base import InkstitchExtension class Zip(InkstitchExtension): @@ -26,6 +28,8 @@ class Zip(InkstitchExtension): extension = format['extension'] self.OptionParser.add_option('--format-%s' % extension, type="inkbool", dest=extension) self.formats.append(extension) + self.OptionParser.add_option('--format-svg', type="inkbool", dest='svg') + self.formats.append('svg') def effect(self): if not self.get_elements(): @@ -42,7 +46,12 @@ class Zip(InkstitchExtension): for format in self.formats: if getattr(self.options, format): output_file = os.path.join(path, "%s.%s" % (base_file_name, format)) - write_embroidery_file(output_file, stitch_plan, self.document.getroot()) + if not format == 'svg': + write_embroidery_file(output_file, stitch_plan, self.document.getroot()) + else: + output = open(output_file, 'w') + output.write(inkex.etree.tostring(self.document.getroot())) + output.close() files.append(output_file) if not files: diff --git a/templates/zip.inx b/templates/zip.inx index 485e3f1b..3699915b 100644 --- a/templates/zip.inx +++ b/templates/zip.inx @@ -9,9 +9,10 @@ <_filetypetooltip>{{ _("Create a ZIP with multiple embroidery file formats using Ink/Stitch") }}</_filetypetooltip> <dataloss>true</dataloss> </output> - {% for format, description in formats %} + {%- for format, description in formats %} <param name="format-{{ format }}" type="boolean" _gui-text=".{{ format | upper }}: {{ _(description) }}">false</param> - {% endfor %} + {%- endfor %} + <param name="format-svg" type="boolean" _gui-text=".SVG: {{ _("Scalable Vector Graphic") }}">false</param> <param name="extension" type="string" gui-hidden="true">zip</param> <script> {{ command_tag | safe }} |
