From 3340885ade322e8ae6b75257cc760ff48e218a0a Mon Sep 17 00:00:00 2001 From: jaseg Date: Fri, 27 Sep 2019 00:06:40 +0200 Subject: Made the inkscape exporter headless --- support/inkscape_exporter.py | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'support') diff --git a/support/inkscape_exporter.py b/support/inkscape_exporter.py index 4e80c63..25fcabe 100755 --- a/support/inkscape_exporter.py +++ b/support/inkscape_exporter.py @@ -6,6 +6,8 @@ import tempfile from pogojig.inkscape import effect, inkscape +from xvfbwrapper import Xvfb + def _unfuck_svg_document(temp_svg_path): """ @@ -45,17 +47,19 @@ if __name__ == '__main__': parser.add_argument('infile', metavar='input.svg', help='Inkscape SVG input file') parser.add_argument('outfile', metavar='output.dxf', help='DXF output file') args = parser.parse_args() - - effect.ExportEffect.check_document_units(args.infile) - - with tempfile.TemporaryDirectory() as tmpdir: - temp_svg_path = os.path.join(tmpdir, os.path.basename(args.infile)) - shutil.copyfile(args.infile, temp_svg_path) - - _unfuck_svg_document(temp_svg_path) - - export_effect = effect.ExportEffect() - export_effect.affect(args=[temp_svg_path], output=False) - - with open(args.outfile, 'w') as f: - export_effect.write_dxf(f) + + with Xvfb(): + effect.ExportEffect.check_document_units(args.infile) + + with tempfile.TemporaryDirectory() as tmpdir: + temp_svg_path = os.path.join(tmpdir, os.path.basename(args.infile)) + shutil.copyfile(args.infile, temp_svg_path) + + _unfuck_svg_document(temp_svg_path) + + export_effect = effect.ExportEffect() + export_effect.affect(args=[temp_svg_path], output=False) + + with open(args.outfile, 'w') as f: + export_effect.write_dxf(f) + -- cgit