How to make text flow follow a certain shape? Specially a spiral

I want to do two related things:
1.- I would like to make the text flow follow a spiral, but with the words always pointing in the normal direction. Because online there is already all of ‘Word Spiral’ tools but they all make the words rotate following the spiral direction, I would like they follow the spiral disposal, the flow, but that they keep the ‘downwards’ position, the normal angle at words are read at.
2.- I would like to do something like this calligramme: image, but libreoffice text inside shapes is not as tight and malleable, it’s always a square like object inside the shape.
How those two things could be archived

You can draw spirals in Draw but it requires skills that I don’t have the time to develop. If you are interested, Regina’s book Custom Shape Tutorial from English documentation | LibreOffice Documentation - LibreOffice User Guides, can probably provide the information.

I use Inkscape to draw spirals using this tutorial Spirals — Inkscape Beginners' Guide 1.0 documentation

The svg can easily be opened in Draw.

To add the text requires the other Fontwork which you can add to your Standard toolbar by clicking Tools > Customise and selecting the Toolbars tab. Search for Fontwork, select it and click the right-pointing arrow and OK. In the image below I have selected the common Fontwork in the righthand pane so that the new Fontwork will go below it when I click the arrow.

Double-click your spiral and write your text in the rectangular text box. With it still selected click the new Fontwork icon to choose the angle and spacing.

1 Like

for 1. Are you sure you want upright characters? Depending on the direction of the spiral the characters are arranged from right to left. That makes the text hard to read. The attachment contains the spiral from Inkscape and a spiral derived from a Fibonacci-spiral. It shows some examples, what you can get with the “Text on Path” tool.
Spirals.odg (25.1 KB)

for 2. You can draw a polygon for the outline. In tool “Text attributes” set “Adjust to contour”. But it will no become so nice as in the image, because justified alignment needs more text in a line than a single word. When you draw the polygon make sure, that your first line is horizontal from left to right, otherwise you will produce an unwanted rotation, which is not only in the shape, but is applied to the text as well.
Polygon.odg (125.1 KB)

2 Likes

The text does not spread to the contour. What's wrong in my attempt?


Polygon02.odg (137.8 KB)


Version: 7.6.6.3 (X86_64) / LibreOffice Community
Build ID: 60(Build:3)
CPU threads: 2; OS: Linux 5.4; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.UTF-8); UI: en-US
Ubuntu package version: 4:7.6.6-0ubuntu0.20.04.1~lo1
Calc: threaded

Just a guess: this is Draw, not a sophisticated DTP-targeting application. I suppose its text processing capabilities are limited. Text has been set as shape (Bézier curve) label with Adjust to contour. My guess is this label is limited to a rectangular area (for ease of processing – and this is usually what you expect from labels). Width of this area is adjusted to minimum of horizontal contour “cross-section”.

There is nothing wrong with your attempt, but you see bug 152906 – Text adjust to contour broken in recent draw/impress in your LibreOffice version. The fix was not back ported to 7.6.7. Thus try with a daily build or with a version before 7.2. The fix will be in version 24.2.4.

3 Likes

Please edit your question to mention OS name, LO version and save format.


Request nr. 1 cannot be done in Writer which is intended to manage text sequence along horizontal lines within a page. Use specialised DTP (desktop publishing) application for this.

Request nr. 2 can be approximately achieved by reversing the paradigm. Design in Draw (or other drawing program) white shapes representing the no-print zones. I think you’ll need a left shape and a symmetrical right shape. Position them in your page with the correct Wrap mode (probably Parallel) and option Contour. Best is to design a common frame style without Allow overlap.
Then let your text flow “as usual” between the shapes. Pay special attention to alignment (Justified) and probably tune the hyphenation properties so that your text fills as much as possible the area between the shapes.

However, I think again a DTP program is better fit to this kind of layout (primarily because your document is more page-oriented than flow-oriented) as you need to precisely control position within a page (not within a flow).

2 Likes

Do you have any in mind that you can recommend? I would like one that allow me to write in the shape in real time, not like having a pre-written text and fit it onto the shape (the draw option looks good, but for the spiral looks more adhoc for the DTP), thanks for the fast response.

You could do it on Scribus.
Check this video: https://www.youtube.com/watch?v=S0KHuZxuY6Q


Result…


SpiralScribus


Addendum
For using the spiral in Libreoffice you have to export the Scribus page into SVG or PDF format, then import in LO Draw. Probably you have to break the drawing.
I could not import the drawing via clipboard, so you have to use this detour.


There is a similar solution for text in shapes. In Scribus you have to transform a polygon into a text frame. Which is not easy for shapes derived from other objects or sources. To use these text containing shapes you have to export them into SVG or PDF format and then to import into LibreOffice. It’s cumbersome but feasible.

1 Like