lyx_mirror/lib/scripts/libreoffice2eps.py

48 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# file libreoffice2eps.py
# This file is part of LyX, the document processor.
# Licence details can be found in the file COPYING.
#
# \author Tommaso Cucinotta
#
# Full author contact details are available in file CREDITS
# This script converts an OpenOffice drawing to EPS.
# Usage:
# python libreoffice2eps.py input.odg output.eps
import os, sys, tempfile, shutil
def runCommand(cmd):
''' Utility function:
run a command, quit if fails
'''
if os.system(cmd) != 0:
print "Command '%s' failed." % cmd
sys.exit(1)
# We expect two args, the names of the input and output files.
if len(sys.argv) != 3:
sys.exit(1)
input, output = sys.argv[1:]
# Fail silently if the file doesn't exist
if not os.path.isfile(input):
sys.exit(0)
tmpdir = tempfile.mkdtemp()
fname = os.path.splitext(os.path.basename(input))[0]
# Generate the EPS file
runCommand('libreoffice -nologo -headless -convert-to eps -outdir "%s" "%s"' % (tmpdir, input))
shutil.move('%s/%s.eps' % (tmpdir, fname), '%s/%s.ps' % (tmpdir, fname))
runCommand('ps2eps "%s/%s.ps"' % (tmpdir, fname))
shutil.move('%s/%s.eps' % (tmpdir, fname), output)
os.remove('%s/%s.ps' % (tmpdir, fname))
os.rmdir(tmpdir)