[LyX/master] Use inkscape as fallback png->eps converter
Juergen Spitzmueller <[email protected]> Fri, 15 May 2026 12:39:58 +0000
| Newsgroups | gmane.editors.lyx.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 5aefad462b850708012eea42cff0145452a1cb6b Author: Juergen Spitzmueller <[email protected]> Date: Fri May 15 14:38:30 2026 +0200 Use inkscape as fallback png->eps converter if ImageMagick is not available or IM policy does not allow for this conversion --- lib/configure.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/configure.py b/lib/configure.py index 8561a51b7f..bad14f34c2 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -1247,12 +1247,39 @@ def checkConverterEntries(): removeFiles(['mock.eps']) #needs empty record otherwise default converter will be issued addToRC(r'''\converter eps png "" "" -\converter png eps "" "" \converter jpg tiff "convert $$i $$o" "" \converter png tiff "convert $$i $$o" ""''') logger.info('ImageMagick seems to ban conversions from EPS. Disabling direct EPS->PNG.') pdftopng.append('pdftoppm -r 72 -png -singlefile $$i > $$o') # + # Same for png to eps + _, cmd = checkProg('a PNG -> EPS converter', ['magick', 'convert']) + have_png2eps = False + if cmd: + from PIL import Image + img = Image.new('RGB', (5, 5)) + img.save("mock.png", "PNG") + try: + subprocess.check_call([cmd, "mock.png", "mock.eps"]) + removeFiles(['mock.eps', 'mock.png']) + rc_entry = r'\converter png eps "%s $$i[0] $$o" ""' + addToRC(rc_entry % cmd) + have_png2eps = True + except: + removeFiles(['mock.png']) + #needs empty record otherwise default converter will be issued + addToRC(r'''\converter png eps "" ""''') + logger.info('ImageMagick seems to ban conversions to EPS. Disabling direct PNG->EPS.') + + if not have_png2eps: + #try inkscape instead. + if inkscape_stable: + checkProg('an alternative PNG -> EPS converter', [inkscape_cl + ' $$i --export-area-drawing --export-filename=$$o'], + rc_entry = [ r'\converter png eps "%%" ""']) + else: + checkProg('an alternative PNG -> EPS converter', [inkscape_cl + ' --file=$$i --export-area-drawing --without-gui --export-eps=$$o'], + rc_entry = [ r'\converter png eps "%%" ""']) + # # PDF -> PNG: sips (mac), IM convert (windows, linux), pdftoppm (linux with IM ban) # sips:Define a converter from pdf6 to png for Macs where pdftops is missing. # The converter utility sips allows to force the dimensions of the resulting -- lyx-cvs mailing list [email protected] https://lists.lyx.org/mailman/listinfo/lyx-cvs