Text poured into columns

A newsletter, a leaflet, the terms on the back of an order form: as soon as a page holds more words than one column can carry comfortably, the text has to run from the foot of one into the head of the next. It is a common layout, and the answer changes the moment a single word does.

Here the passage is measured once and then poured: the first column takes as many lines as its height allows, hands the rest to the second, and the second to the third. Add a sentence at the top and everything below it shuffles down of its own accord, across all three. A thin rule is drawn round each column on this page, so the text can be seen reaching the foot of one and carrying on at the head of the next.

What this example shows

  • One passage running from the foot of a column into the head of the next.
  • Three columns on one page, each with a rule drawn round it.
  • Each column taking exactly the lines its own height allows.

The source code, complete

Nothing is left out and nothing is simplified: this is the program exactly as it runs, for the developer who uses this library. The third is the description itself: a plain list of what the page has to say, which is what the service is sent.

Read the Rust source Read the Python source Read the JSON source

The document itself

Open the document in English Open the document in French

Text poured into columns, first page

Optimised, this document weighs 11.6 kB — at least 85 % lighter than most PDF generators would write it

The document is lighter than it was, and every page still looks exactly the same. See this document's row in the table of every example.

Examples near this one

Breaking an overlong word

A word longer than the column that holds it: the library leaves it whole, or cuts it at the column's edge.

Break points after a slash or a hyphen

A justified column set twice: file paths and compounds running past the edge with no break points, then wrapping where a break after a slash or a hyphen is allowed.

A font behind the font

One line of statuses set twice: in a company font alone, where the characters it has no glyph for come out as empty boxes, then with a second font behind it that draws them.

Every example, by subject