Inkscape AI compatible EPS exporter

Edit: I moved the script to GitHub, go there for full information and downloads.

This script converts an Inkscape SVG to Adobe Illustrator 7 compatible EPS. The generated EPS file uses custom Illustrator PS operators, and includes PostScript processes that stands in place of said operators when the file is not opened with Adobe Illustrator.

Reporting issues

Please report issues using the project’s github issue tracker, and upload a minimal SVG file that can reproduce the error.

Copyright

If you create some graphics and export it with this script, the copyright of the exported image belongs to you, your are free to do with it whatever you want.

104 Comments

  • Ananda says:

    Is it work with inkscape 1.0.2?

    • Ananda says:

      please can you check it, i don’t have illustrator

      • Prim András says:

        I don’t have illustrator either (anymore), but if you open the exported EPS with another program (for example with Evince), and it looks good, then it’s more than likely that it will work with Illustrator too.

  • Marcin says:

    Would the script run on MacOS? I placed it in the user extensions folder (found in Preferences->System->User extensions as well as in Inkscape Extensions and checked on file extensions and permissions. All look fine, yet I can’t get Save As with Adobe Illustrator compatible EPS option.
    I’m on MacOS BigSur(the latest) and I just downloaded Inkscape for Mac 1.0.1 and the latest extension of yours from your github. Thanks.

    • Prim András says:

      I use MacOS Catalina, and it worked for me: I copied the .inx and .py file to the folder shown in Preferences->System->User extensions, restarted inkscape, and after that in the File->Save as… window the “Encapsulated Postscript – AI compatible (*.eps)” was available in the file type dropdown.

  • ed says:

    is compatible with inkscape1.0.1?

  • kholil emy says:

    salam
    can you help me,, hehe

    Traceback (most recent call last):
    File “aieps_output.py”, line 1169, in
    print(converter.convert())
    File “aieps_output.py”, line 1141, in convert
    self.walkElem(self.root)
    File “aieps_output.py”, line 882, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 882, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 882, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 865, in walkElem
    self.elemStop(elem)
    File “aieps_output.py”, line 705, in elemStop
    offset = float(elem.get(‘offset’)) * 100
    ValueError: could not convert string to float: ‘0%’

  • Olesia says:

    Hello! Thank you for this extension. I can not save file in eps. How solve the problem? Error:

    Traceback (most recent call last):
    File “aieps_output.py”, line 1137, in
    print(converter.convert())
    File “aieps_output.py”, line 1109, in convert
    self.walkElem(self.root)
    File “aieps_output.py”, line 850, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 850, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 836, in walkElem
    self.layerStart(elem)
    File “aieps_output.py”, line 718, in layerStart
    layerName = “”.join(map(lambda x: ‘_’ if ord(x) 127 else x, layerName))
    TypeError: ‘NoneType’ object is not iterable

    • Prim András says:

      It seems some of your layers lost its label.
      Open the layer editor (Layer / Layers… menu item), and rename any layer that’s name starts with “#” and try again.

      If it doesn’t help, submit a report with an SVG file here: https://github.com/tzunghaor/inkscape-eps-export/issues

    • Kevin says:

      Sorry about Kesan and Yazid. first, please mind you, they are talking in Indonesia language, not Philippines. Second, you are right Yazid replied the same question as Kesan. Third, it is not spam I guess, probably don’t know English well to read your answer. For me, I am sorry about my English, it is not my native language. I appreciate your effort to answer these questions even though it is not english.
      Oh and thank you so much for your eps exporter, it is very helpful indeed.

      • Kevin says:

        Sorry, wrong section to reply, I tried to reply in Kesan section but ended up in here

  • sebnem says:

    Hello,
    Thank you for this wondeful extension. I made it work at commandline and get this error:
    Traceback (most recent call last):
    File “aieps_output.py”, line 1137, in
    print(converter.convert())
    File “aieps_output.py”, line 1109, in convert
    self.walkElem(self.root)
    File “aieps_output.py”, line 850, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 850, in walkElem
    self.walkElem(child)
    File “aieps_output.py”, line 821, in walkElem
    self.elemRect(elem)
    File “aieps_output.py”, line 575, in elemRect
    self.elemPath(elem, pathData)
    File “aieps_output.py”, line 319, in elemPath
    self.epspath += ‘\n%AI3_Note: ‘ + elem.get(‘id’) + ‘\n’
    TypeError: can only concatenate str (not “NoneType”) to str

    I am new at python. So it would be great if you have a sloution.

  • Afta says:

    Hi, thanks for your work, i really need it, btw can i use your extension for commercial use (ex : for submit shutterstock) 😀

    • Prim András says:

      Sure, that’s exactly why I’ve written it.

      • Kesan says:

        dapatkah saya menggunakan ekstensi Anda untuk penggunaan komersial (mis: untuk mengirim shutterstock) 😀

        • Prim András says:

          I put your comment into Google Translate, and I beleive that the answer is yes. I’ve added a paragraph about copyright to the text.

          • Yazid says:

            Saya sangat berterimakasih adanya ekstensi ini…
            Bolehkah saya juga menggunakan ekstensi anda untuk penggunaan komersial ? 🙂

          • Prim András says:

            What is going on here? The comment you are replying to answers this question. And the page is in english, I don’t speak philippenise. Is this some kind of obscure spam? But what is its goal?

Leave a Reply to George Cancel reply

Your email address will not be published.