I'm trying to create a block of text with formatting and I want to surround it with a border. I've tried the "Flow into frame" feature, but that removes formatting (I would like line breaks, spaces, bold, etc...).

Right now, I'm manually drawing a rectangle around it and aligning it (using the align and distribute functions). Is there a way to automate this and produce consistent results? My current technique does not guarantee even spacing from the border to text of multiple boxes like these.

  • 1
    Here is an extension (not tried) which creates a rectangle for the bounding box of each selected object. – Paolo Gibellini Dec 5 '13 at 15:15
  • 1
    "Topic not found" - wrong link? – zje Dec 5 '13 at 17:53
  • 1
    It's curious, there isn't a permalink to the topic: now the link is this. Try using a google search for inkscape frame around text site:www.ruby-forum.com it should be the first result. – Paolo Gibellini Dec 6 '13 at 17:19
  • @PaoloGibellini I still can't find this extension! – Herman Toothrot May 15 '19 at 0:21
  • @HermanToothrot It seems that the page doesn't exist anymore. But the answer of Sean Colsen shows a simple and effective way to accomplish this task. – Paolo Gibellini May 15 '19 at 6:42

Yes! Here is the end result:

end result

Step by step:

  1. Create some flowed text by using the text tool to first drag a rectangle and then type.


  1. Separately, create a rectangle roughly around the text (really, the rectangle can be anywhere)


  1. With the rectangle selected, chose "Path" > "Linked Offset". Then grab the small diamond and drag it in to make a second, smaller rectangle.


  1. Select the text and the smaller rectangle and choose "Text" > "Flow into frame". Then select the smaller rectangle and remove the stroke to make it invisible. Now the text will flow within the smaller (invisible) rectangle, which is dynamically linked to the shape of the larger (visible) rectangle.


  1. Then, if you like, you can add a small border radius on the visible rectangle and you get this nice looking result.

end result

  1. If you do need to modify the space between the text and the rectangle, you can carefully select it by grabbing it with the text and the subtracting the text from the selection, or you can drill down to it within the XML Editor. When you do get it selected, then you can adjust the margin as follows:


  1. Finally, group the text and the two rectangles, and you're all set!
  • 4
    That's a great trick. I still can't believe that something that simple requires so many steps. – Sergio Nov 14 '16 at 19:56
  • 1
    Great! However, when I make the inner rectangle invisible (by clicking the hidden button on the properties or setting its color to #00000000) then I can't grab it anymore or even see its outlines. Is there a solution for this problem ? – DevonDahon Feb 16 '17 at 8:58
  • 1
    I found a solution : Object > Unhide All. – DevonDahon Feb 16 '17 at 9:04
  • But grouping the objects isn't stable (at least with 0.91 on osx). – DevonDahon Feb 16 '17 at 10:19
  • Step 6 is easier at least in 0.92. Just select the text and notice the status bar tells you to hit Shift-D if you want to "look up frame". That gets the invisible frame selected, then hit F2 for the node select tool, and you should see the resizing diamond. – Ron Burk Jul 29 '17 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.