Overlong text in a narrow cell

A dish name, a product description, a customer's company: in a table the text that will not fit has nowhere to go. It cannot push its neighbours aside, and the column cannot quietly widen without every row below it moving. What should happen has to be settled before the data arrives, because it is the data that causes it.

The same day's meals are set twice here: once with the long dish names running out over the column beside them, once with them kept inside it. It is for you to choose which you prefer — a delivery note would rather overflow than name the wrong article, a label of fixed width would rather cut — so the choice is made cell by cell, and every cell keeps the answer you gave it.

What this example shows

  • The same rows overflowing their column, then kept inside it.
  • One setting per cell, where a single setting for the whole table is what you would expect.
  • Both outcomes on one page, so the difference can be seen.

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

Overlong text in a narrow cell, first page

Optimised, this document weighs 15.3 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

A multi-page invoice table

Twelve invoice lines is one page and thirty is two, the second taking up the first's header and layout.

A self-paginating table

A long table handed over whole, deciding for itself where the pages break: its heading on top of every page, its footnote under every page, its grey grounds stated once for the whole table, and a note you draw under each page at the exact place the table reports.

Cells merged down the rows

A specification sheet whose cells are merged down the rows: each group named once beside all of its rows, with one note beside them; the thin lines stop at those cells' edges, and a note too long for the rows it covers makes them grow.

Columns measured from their cells

One parts list twice: four columns sharing the width equally, then the reference, the quantity and the price each as wide as their own widest cell and the description given everything they leave.

Every example, by subject