Letters you draw yourself

A font file holds letters somebody else drew. Sometimes what a document needs is a mark nobody drew for you: your own logo, the tick your quality sheets use, a symbol your trade has and Unicode has not. The usual answer is to drop a picture in at every occurrence and then work out by hand how far to move along before the next word — which comes apart the day the text is translated or the size changes.

Here the marks are drawn by the program itself and set among the words like any letter, so they move with the text instead of being put back by hand. Two things follow. A mark can carry its own colour — the tick comes out green and the cross red wherever they are set, which no font read from a file can do — or it can state a shape and no colour at all, and then it is painted in the colour of the words around it: the same square comes out red on one line and blue on the next. And none of it costs you the text, because each mark is written down as the character it stands for: copying the line out of the finished file gives the characters back, a search finds them, and a screen reader reads them.

What this example shows

  • Letters drawn by the program, not read from a font file.
  • A mark that carries its own colour, and one that takes the colour around it.
  • Text that still copies out as the characters it stands for.

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

Examples near this one

A minimal PDF

Two identical pages carrying the bones of an invoice in plain shapes, and not a word of text: a file of a dozen kilobytes, with no font embedded.

Making the file smaller

The same document written twice, plainly and packed, with what each one weighs and what the packing saved.

Fonts embedded in the file

Text set in a font embedded in the file, cut down to the letters actually used, and still searchable, copyable and readable aloud.

Every example, by subject