If you’ve not yet discovered the Bezier Envelope Extension for Inkscape, a treat awaits you. Here’s a video on how to create great shaped text with this cool and easy tool.
May 2020 update: Bezier Envelope Extension not currently compatible with Inkscape 1.x, unfortunately.
To download a free Inkscape template of ready made shapes, click here.
If you don’t already have the extension, here’s what you need to do the first time you want to use it:
1. Download the extension here and unzip the folder. [alternate download link here]
2. To install the extension, copy both the bezierenvelope.inx and the bezierenvelope.py file into the folder/directory indicated.
-In Windows: Copy the two files into: C:Program Files\Inkscape\share\extensions
( Assuming that your Inkscape is located at C:Program Files\Inkscape)
-On MacOS for Inkscape .48 or earlier : “/Applications/Inkscape.app/Contents/Resources/extensions”
-In MacOS for Inkscape .91: “/Applications/Inkscape.app/Contents/Resources/share/Inkscape/extensions”
To get to either location on the Mac, you can use the Finder’s “go to folder” feature, in the Go menu and copy/paste the string inside the quotation marks
If you can’t find the extensions folder using this path, you can open Inkscape and look under Preferences>System>Inkscape Extensions to find your specific path
3. Re-open Inkscape and verify that Bezier Envelope appears under Extensions menu > Modify Path submenu.
If you need more help installing the extension, here are some videos
Megan says
I have watched your youtube video on how to warp text in inkscape. I have downloaded, extracted and applied the extension in the appropriate folder yet it keeps giving me this error———V I have even made sure my text is pathed as is the shape….still wont work.
Traceback (most recent call last):
File “bezierenvelope.py”, line 381, in
e.affect()
File “inkex.py”, line 283, in affect
self.effect()
File “bezierenvelope.py”, line 90, in effect
raise Exception, “Both letter and envelope must be SVG paths.”
Exception: Both letter and envelope must be SVG paths.
Kay says
Hi Megan, as the error message says, one of your objects is not a path. Try again and be sure to check both objects via the status bar to be sure you haven’t missed a step. Unfortunately, its just not a forgiving process.
Michelle says
I am having the same error. I’ve followed all steps over and over. Reinstalled extension. I read the comments that it must be a path. I went back and clicked “object to path”. Still returns error.
Traceback (most recent call last):
File “bezierenvelope.py”, line 381, in
e.affect()
File “C:\Program Files\Inkscape\share\extensions\inkex.py”, line 283, in affect
self.effect()
File “bezierenvelope.py”, line 90, in effect
raise Exception, “Both letter and envelope must be SVG paths.”
Exception: Both letter and envelope must be SVG paths.
Michelle says
I had an extra node!
Kay says
Glad you got it sorted and thanks for letting me know!
Paul Tobeck says
Hi Kay,
Been using this for several years, find it very handy doing t-shirt designs.
I just recently updated to 0.92.2 and now the extension isn’t working anymore.
Here’s the error I get:
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 147, in
globals()[__func_name] = __get_hash(__func_name)
File “C:\Program Files\Inkscape\python\Lib/hashlib.py”, line 97, in __get_builtin_constructor
raise ValueError(‘unsupported hash type ‘ + name)
ValueError: unsupported hash type sha512
The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension.Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml
Technical details:
No module named lxml
Any ideas?
Kay says
Hi Paul. Unfortunately my knowledge of Inkscape doesn’t go to this technical level, but I have seen this before and if you Google “fantastic lxml wrapper” and you should find the fix. May not be up to date for 0.92.2 in which case recommend posting your question in the Inkscape forum.
Marrin says
I have downloaded the bezier envelope onto my computer from above, but Im not sure how to get it into Inkscape???? Anyway you can help? Thanks!
Kay says
All of that information is in the blog post.
Ken Jordan says
Kay, I am using Inkscape version 92.3. I have watched your video numerous times, and followed your instructions step by step. When I create the envelope, using the rectangle tool, it comes up with 8 nodes in the path. And when I use the bezierenvelope extension, my text comes out upside down, on the outside of the envelope and it gets smaller and twisted. I’m sure there is a simple fix for this, but I am stumped. Any help correcting this would be greatly appreciated. Thank you.
Kay says
Hi Ken, I don’t run v.92 and I don’t know why you are getting 8 nodes in a rectangle. I would suggest you draw a 4 node rectangle with the pen tool instead. Be sure to start at the upper left and go clockwise (or whatever it says in the video). If you are getting unexpected results then you are probably selecting in the wrong order. This is a nice tool, but it’s unfortunately not the least bit forgiving.
Paul Tobeck says
Bezier Envelope doesn’t work properly in newer versions of Inkscape. I can only get it to work in v.91 or earlier.
Kay says
In that case, you might want to try Lattice Deformation instead.
Paul Tobeck says
Until they update the backend that caused the issue, I just downgraded back to v.91.
Works perfectly and is more important to me than any improvements they made in v.92.
Fiona says
The extension will work in v92.4. You’ll need to take an extra step and it reacts a bit differently, though better IMHO:
1. create your 4 node shape & convert object to path;
2. create your text & convert object to path;
3. select the text path group and UNGROUP the selection;
4. select all of the letters & Path>Union;
5. select the text path & shape path then apply the extension.
The text path should convert to the envelope shape, IN PLACE. (it no longer overlays within the original shape).
Hope this helps!
Sophie says
Fiona,
I followed your 5 steps to the letter – it still does NOT work for me. Looks like some sort of a message box is popping up for a split second when the extension is applied. I’m running 0.92.4 on Windows 7. Any ideas what I could have missed?
Thanks for any help!
Mel says
Hi Kay,
Great tutorial – thank you!!
I just downloaded and copied the files to Inkscape 1.0 but when I close/reopen Inkscape, the Bezier Envelope is in my Extensins, but grayed out (just teasing me!!). Any tipes on how to get this going for me please?
Thanks
Kay says
Unfortunately, extensions have to be updated to work in Inkscape 1.0 and this one has not been updated yet. We can only hope it will be soon.
kally says
Hi I’m clicking on the “Download Here” link you have posted above and its saying “error”. the alternate one worked but when I opened the file it had the Black boxes with the green “EXE” in the corner like the windows to mac file errors. I have a Mac will the alternate download option work? I have the .48.5 version. Any ideas on where to get the correct extension for my mac?
Kay says
Hi Kally I just checked and the alternate link worked for me. You only open the .zip file to unzip it. You don’t open the other files, you just drag them into place as instructed above.
Analisa Patino says
Hello,
thank you so much for this video. I have downloaded the envelope extension and have deleted then re-downloaded several times. I have followed all directions but keep getting this error.
File “bezierenvelope.py”, line 83 raise Exception, “Two paths must be selected. The 1st is the letter, the 2nd is the envelope and must have 4 sides.”
^
SyntaxError: invalid syntax
I am sure I have selected text first then the envelop but cannot seem to get it to work. Any tips?
Kay says
First off, this extension is not compatible with Inkscape 1.0 or higher. If you are using an earlier version and getting this message, then most likely either your text or your envelope is not a path. You can easily check that in the status bar.