The PDFs It Created

Click a preview to open the PDF, or download it: the file you get is the one the engine wrote, not a preview made for this page.

Back to the Catalogue

Complete business documents

A Commercial Invoice

An invoice: each billed line follows the one before, the totals sit under the last, and the QR code holds the transfer. The customer points a telephone at it, and the banking app offers the exact sum into the exact account, with nothing retyped.

Read the source in: Rust Python JSON

A Commercial Invoice, first page

A Delivery Note

The note that travels with the goods: a barcode against each article, a box the receiver ticks, and the consignment's own code.

Read the source in: Rust Python JSON

A Delivery Note, first page

A Payslip

A payslip: eighteen contribution lines, with the employee's share and the employer's, and for each the month's amount then the total since January. Each figure is tied to the line and the column it stands under, for software that reads the page aloud.

Read the source in: Rust Python JSON

A Payslip, first page

A Two-Page Services Contract

A services agreement over two pages where no clause is ever cut in half by a page turn, ending in signature, name and date fields filled in on screen.

Read the source in: Rust Python JSON

A Two-Page Services Contract, first page

A Landscape Certificate

A certificate whose border, ribbon and seal are drawn as lines rather than photographed: sharp at any size, and a fraction of the weight.

Read the source in: Rust Python JSON

A Landscape Certificate, first page

A Boarding Pass

A boarding pass carrying, as a QR code, the one line the gates at an airport read — one character out of place and it is refused.

Read the source in: Rust Python JSON

A Boarding Pass, first page

A Sheet of Shelf Labels

Fifteen shelf labels on one pre-cut sheet, each with its price and its scannable code, and trim marks in the margins. Six numbers describe the paper.

Read the source in: Rust Python JSON

A Sheet of Shelf Labels, first page

A Till Receipt on a Paper Roll

The ticket a counter till prints on a roll 80 mm across: six articles, the tax gathered by rate, the change worked out from the note handed over, and the barcode the shop scans when the ticket comes back.

Read the source in: Rust Python JSON

A Till Receipt on a Paper Roll, first page

A Snag List, with Every Defect Marked on the Plan

The sheet a handover of premises produces: a plan of the floor at 1:300 with nine defects marked where they sit, the list of those defects one to a line, and what they come to. The marks stand above the page, and reading software lists them, filters them, and prints them or leaves them off the paper.

Read the source in: Rust Python JSON

A Snag List, with Every Defect Marked on the Plan, first page

A Statement with a Part Hidden Before It Is Released

Three marks measured on the very words they cover: one showing the reason in the middle of its gap, one repeating it along the length of a wider one, one covering without a word. A mark states what must go; it does not take it out.

Read the source in: Rust Python JSON

A Statement with a Part Hidden Before It Is Released, first page

A Tender Pack of Three Lots

Three lots, each attached to the document as a separate file, described by the columns the document defines itself — lot, day sent, amount — and sorted newest first. The cover page repeats the same columns in plain view, for reading software that does not show attached files.

Read the source in: Rust Python JSON

A Tender Pack of Three Lots, first page

The Notes a Program Leaves Itself

A press proof carrying the run on the file, the plate on the page and the ink on the colour bar placed twice. None of it is drawn and no reading software shows it: it is there for the program that wrote it.

Read the source in: Rust Python JSON

The Notes a Program Leaves Itself, first page

Three Statements in One File

Four pages holding three customer account statements. Each statement declares the pages that belong to it, the customer it is meant for, the number of copies to print, and the attached file that comes with it.

Read the source in: Rust Python JSON

Three Statements in One File, first page

One Letter per Recipient, All in the Same File

Four personal letters behind a contents page. The letters have no page numbers: each recipient gets the pages that follow their own, as many as are needed. Each line of the contents leads to the letter it names.

Read the source in: Rust Python JSON

One Letter per Recipient, All in the Same File, first page

Pages, text and fonts

A Minimal PDF

Two identical pages that draw the structure of an invoice with lines and rectangles, without a word of text: the file is about a dozen kilobytes and embeds no font.

Read the source in: Rust Python JSON

A Minimal PDF, first page

Showing Page One Before the File Has Arrived

The same document written twice: once as it is, once with its first page placed at the start of the file. The page gives, for each of the two, the number of bytes a browser must have received before it shows page 1.

Read the source in: Rust Python JSON

Showing Page One Before the File Has Arrived, first page

Every Paper Size, on Its Own Page

One page for each paper size the library names, from A0 down to A6 and the American sizes, each giving its size in millimetres and inches; then pages laid on their side or upside down, and a banner ten metres long.

Read the source in: Rust Python

Every Paper Size, on Its Own Page, first page

Making the File Smaller

One document written twice: once uncompressed, once compressed. The page gives both file sizes and what the compression saved.

Read the source in: Rust Python JSON

Making the File Smaller, first page

A Document That Reads Freely and Asks Not to Be Copied

A page that opens without a password and prints like any other, but asks the reading software to forbid copying and pasting its text. The text is encrypted in the file: a program reading it byte by byte finds no sentence in it.

Read the source in: Rust Python JSON

A Document That Reads Freely and Asks Not to Be Copied, first page

A Document That Asks for a Password Before It Opens

A page nothing shows until its password is typed in: no first line, no preview, no picture of it anywhere. The password is given on the example's page, to be tried.

Read the source in: Rust Python JSON

No picture of this document can be shown: no page of it appears until its password is typed in. Its own page gives the password.

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.

Read the source in: Rust Python JSON

Fonts Embedded in the File, first page

Letters You Draw Yourself

A tick, a cross and a dash drawn by the program, added to the document as a font, and set among ordinary words.

Read the source in: Rust Python JSON

Letters You Draw Yourself, first page

A Page That Carries No Font

Four fonts all reading software draws on its own, set on a page that carries no font at all — and the example weighs the same lines both ways to say what that saves. Then the fourteen again, in free fonts of the same widths carried inside the file.

Read the source in: Rust Python JSON

A Page That Carries No Font, first page

Every Free Font, One Page Each

The twenty-six free fonts the library carries in place of the fourteen built-in ones, one page each: eight sizes, the same line in the built-in font and in the free one, and every character the font shows.

Read the source in: Rust Python

Every Free Font, One Page Each, first page

A Page Set in a Font from 1990

A font in Adobe's oldest format, the kind a print shop bought twenty years ago and almost nothing reads any more, cut down to the letters the page draws. Every figure the page states about it was read out of the font itself.

Read the source in: Rust Python JSON

A Page Set in a Font from 1990, first page

A Page Whose Letters Cost One Byte Each

The same three lines written twice over — the ordinary way, then with each letter kept as a single byte — and the page states what each of the two came to. The short way also lets the space between the words of a line be set, which the ordinary way does not.

Read the source in: Rust Python JSON

A Page Whose Letters Cost One Byte Each, first page

Dashed and Dotted Lines

Dashes and dots, the shape of a line's ends, the shape of its corners: each drawn as one line under those settings. The statement at the bottom is ruled with dots, and its total held off by a dashed line.

Read the source in: Rust Python JSON

Dashed and Dotted Lines, first page

Paragraphs, columns and typography

Breaking a Paragraph up, and Aligning It

A paragraph broken into lines, then laid out four ways: left, right, centred, justified.

Read the source in: Rust Python JSON

Breaking a Paragraph up, and Aligning It, first page

Breaking an Overlong Word

A word longer than the column that holds it: the library leaves it whole, cuts it at the column's edge, or cuts it and closes the line on a hyphen.

Read the source in: Rust Python JSON

Breaking an Overlong Word, first page

Soft Hyphens and No-Break Spaces

A justified column set twice: the long words breaking at their soft hyphens with a hyphen shown, or left whole, and a figure a no-break space keeps together.

Read the source in: Rust Python JSON

Soft Hyphens and No-Break Spaces, first page

Break Points After a Slash or a Hyphen

A justified column set four times: file paths and compounds running past the edge with no break points, wrapping where a break after a slash or a hyphen is allowed, then wherever their punctuation allows one, and last with no-break hyphens that keep each compound whole.

Read the source in: Rust Python JSON

Break Points After a Slash or a Hyphen, first page

A Report That Lays Itself Out

A title, a rule, two paragraphs, a heading, a table of twenty-six rows and a footnote, handed over in reading order and broken across two pages by the engine.

Read the source in: Rust Python JSON

A Report That Lays Itself Out, first page

A Stack Laid out by Hand, One Box at a Time

A delivery slip poured into two boxes, the second taking up where the first stopped, and a poster whose picture no box can hold, each box saying what became of the stack in it.

Read the source in: Rust Python

A Stack Laid out by Hand, One Box at a Time, first page

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.

Read the source in: Rust Python JSON

A Font behind the Font, first page

What a Font File Says about Itself

Three font files read and set out on one page: each face in its own letters, with its name, how many letters it holds, its heights, its underline and what its maker allows a document to do with it.

Read the source in: Rust Python

What a Font File Says about Itself, first page

Text Read from Any Encoding

One line of text received as bytes in seven encodings and read back the same each time, a line in plain letters whose codes are read four ways, and one accented letter written as one character or as two.

Read the source in: Rust Python

Text Read from Any Encoding, first page

What a Font Knows about Its Own Letters

Five samples set twice each, once plain and once with a single setting activated: joined letters, small capitals, figures that hang below the line, the letters one language draws its own way, and pairs moved closer together.

Read the source in: Rust Python JSON

What a Font Knows about Its Own Letters, first page

Text Poured into Columns

One long passage poured into three columns, each fitting the lines its height allows and handing the rest to the next.

Read the source in: Rust Python JSON

Text Poured into Columns, first page

Paragraph Indents and Spacing

The same two paragraphs six ways: as they come, a first line pushed in, a first line pulled out, the room above and below, a justified block whose last line is centred, and where the first and last lines sit in their rectangle. A second page sets them four more ways: two other rules for the first and last lines, letters only outlined, and letters thickened by a line round them.

Read the source in: Rust Python JSON

Paragraph Indents and Spacing, first page

A Contents Page with Dot Leaders

A contents page whose entries are led to their page numbers by dots the layout draws.

Read the source in: Rust Python JSON

A Contents Page with Dot Leaders, first page

Changing Style in the Middle of a Paragraph

A paragraph whose style changes inside it — size, underline, colour — then a heading left hollow or thickened, a line struck through the letters, a long web address broken after its slashes, and a paragraph centred in its box.

Read the source in: Rust Python JSON

Changing Style in the Middle of a Paragraph, first page

Tabs and Tab Stops

The same tabulated rows under each of the three methods, then a contents block whose dots run out to a stop on the right. A tabulation can step on from wherever the text stopped, land on the regular grid of a typewriter, or aim at a stop of its own, on which the text that follows starts, centres, or lines up by its decimal point.

Read the source in: Rust Python JSON

Tabs and Tab Stops, first page

Lists Made from an Indent and a Tab Stop

Bulleted, numbered and nested lists, each built out of an indent that hangs out to the left and one tab stop rather than out of a dedicated list object: the marker sits in the room the indent opens, and every line below the first begins where the tabulation put the text.

Read the source in: Rust Python JSON

Lists Made from an Indent and a Tab Stop, first page

Stamps Fitted to a Rectangle

What a document says about itself — DRAFT, COPY, PAID — laid across rectangles of four different shapes and scaled to each, then SPECIMEN given to the document once and laid on every even page.

Read the source in: Rust Python JSON

Stamps Fitted to a Rectangle, first page

Shrunk Headings and a Turned Label

Headings of different lengths shrunk to share one column, and a label turned a quarter turn up the page's spine.

Read the source in: Rust Python JSON

Shrunk Headings and a Turned Label, first page

Badges of One Size, Names of Every Length

Eight badges cut to the same size, carrying names that run from two short words to a double-barrelled surname. The library finds, for each name, the largest size that fits its rectangle, and that size is printed underneath.

Read the source in: Rust Python JSON

Badges of One Size, Names of Every Length, first page

Words That Follow a Curve

A seal whose legend rides its ring and a second one bowed at its foot so those words stand upright, a title bent over an arch, and the same sentence begun at three places along one straight path.

Read the source in: Rust Python JSON

Words That Follow a Curve, first page

Text Set Down the Page

Three narrow signs whose words are set letter under letter, each filling its columns another way, with what each column measures written underneath.

Read the source in: Rust Python

Text Set Down the Page, first page

Text That Keeps to a Shape

One page, three blocks of text: a column that goes round a note set into its corner, a circle filled line by line, and a six-sided shape whose lines carry on past a picture box in its middle.

Read the source in: Rust Python JSON

Text That Keeps to a Shape, first page

A Whole Novel in English

A public-domain English novel read into its twelve chapters and laid out across sixty-two numbered pages, behind a contents you can click, each chapter opening a page of its own and the engine choosing every line break.

Read the source in: Rust Python JSON

A Whole Novel in English, first page

A Whole Novel in French

The same layout on a French text: thirty-seven chapters over a hundred and sixty-nine pages, drawing the accented alphabet, so the font kept inside the file carries every shape a wider alphabet needs.

Read the source in: Rust Python JSON

A Whole Novel in French, first page

Prices Crossed out, a Shadow behind the Title

A half-price shelf card: every line shows the old price with a line through it beside the new one, the sum of the three carries a rule over the top, and the title is set a second time behind itself, shifted and paler, so it reads over anything.

Read the source in: Rust Python JSON

Prices Crossed out, a Shadow behind the Title, first page

Letters That Clip What Follows Them

One word painted four ways, each time letting the stripes laid after it show only inside its letters: the way a pattern or a photograph is poured into a headline.

Read the source in: Rust Python

Letters That Clip What Follows Them, first page

Tables

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.

Read the source in: Rust Python JSON

A Multi-Page Invoice Table, first page

A Cell's Margin, Border, Inner Room and Fill

What a cell can do with its own rectangle: the margin, the border, the room inside, the background.

Read the source in: Rust Python JSON

A Cell's Margin, Border, Inner Room and Fill, first page

Coloured Cell Borders and Fills

A cell's four sides in four different colours, and coloured fills told apart from coloured borders.

Read the source in: Rust Python JSON

Coloured Cell Borders and Fills, first page

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, a quarter's cell spanning its rows and written again at the top of the next page when a page cuts it, and a note you draw under each page at the exact place the table reports.

Read the source in: Rust Python JSON

A Self-Paginating Table, first page

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.

Read the source in: Rust Python JSON

Cells Merged Down the Rows, first page

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.

Read the source in: Rust Python JSON

Columns Measured from Their Cells, first page

Pictures inside Table Cells

A catalogue whose first column is a picture rather than text: four pictures of very different sizes and proportions, each fitted whole and undistorted into the cell the table gives it and standing against a different corner of it, claiming no width from its column and no height from its row.

Read the source in: Rust Python JSON

Pictures inside Table Cells, first page

A Page and a Stamp inside Table Cells

A checking page for a pack somebody else sent: every row shows one of its pages, taken whole out of the file it arrived in, beside a stamp drawn once and placed in every row that was given it. Both are fitted to the cell the table leaves them, claiming no width from their column and no height from their row.

Read the source in: Rust Python JSON

A Page and a Stamp inside Table Cells, first page

Overlong Text in a Narrow Cell

Overlong text in a narrow table cell: left to overflow the column, cut to it, or set smaller in a row that keeps its height.

Read the source in: Rust Python JSON

Overlong Text in a Narrow Cell, first page

Two Orders, One Frame, One Bottom Edge

An order of four lines and one of seven, in frames of the same height, both ending on the same bottom edge. Underneath, two notes of unequal length whose lines are moved apart until each reaches the foot of its frame.

Read the source in: Rust Python JSON

Two Orders, One Frame, One Bottom Edge, first page

A Figure That Says Which Headings Reach It

Takings for thirty branches, quarter by quarter, over two pages. Every amount on the page carries the headings it stands under: the branch beside it, the quarter over it, and the year over the four quarters together. Read aloud, an amount is announced by its town, its quarter and its year before the sum itself.

Read the source in: Rust Python JSON

A Figure That Says Which Headings Reach It, first page

A Timetable That Reports on Its Own Layout

A bus timetable with every cell outlined and a note on each saying why it is the size it is, the widths of its columns and the heights of its rows explained; then a table laid out despite its faults, a row cut across two boxes, spare room shared among rows, a table too wide for its box shrunk whole into it, and one notice running from cell to cell down a column, then through the two cells of a row.

Read the source in: Rust Python

A Timetable That Reports on Its Own Layout, first page

Colour, inks and printing

Grey, Screen and Printing Colours

Swatches in each of the three ways to say a colour — a grey as one number, a screen colour as three, a printing colour as four inks — each captioned with the instruction actually written into the file, and one mid-grey said four ways, the last as the hexadecimal code a screen designer hands over.

Read the source in: Rust Python JSON

Grey, Screen and Printing Colours, first page

Colour the Document Defines

The same six colours said as bare numbers and then read through the screen profile the file carries, plus a ramp from light to dark and a sweep of measured hues: colour that still means the same thing on another screen and on a press.

Read the source in: Rust Python JSON

Colour the Document Defines, first page

Inks on Plates of Their Own

Two inks the press carries on a plate of their own, each at ten strengths, a piece of work set in both, and the alignment crosses used to line the plates up — drawn in an ink every plate answers to.

Read the source in: Rust Python JSON

Inks on Plates of Their Own, first page

Several Plates at Once, Each at Its Own Strength

Eight choices of plate among the four usual inks, each with the small program that shows it printed underneath, and two inks the press carries itself used together, every strength of one against every strength of the other.

Read the source in: Rust Python JSON

Several Plates at Once, Each at Its Own Strength, first page

A Colour Chart the Drawing Points Into

A chart of house colours the file carries, and a drawing whose sixteen numbers are places in that chart rather than colours. The same drawing is shown twice through two charts: repainting a whole brand is one chart, not every drawing.

Read the source in: Rust Python JSON

A Colour Chart the Drawing Points Into, first page

One Hatch, Laid Down in Any Colour You Like

One pattern that states no colour of its own, laid down in five colours and in five strengths of one press ink: the fill says what colour to lay it down in. Beside them, the same hatch made of patterns that carry their own colours, which is one pattern per colour.

Read the source in: Rust Python JSON

One Hatch, Laid Down in Any Colour You Like, first page

A Sheet as It Goes to the Press

One drawing on four pages: a press sheet stating where the ink runs, where the blade falls and what is worth keeping, with trim marks; the same sheet cropped to the finished page; a landscape page that states a quarter turn clockwise on an upright sheet; and the first sheet again as the right half of a press sheet two pages wide.

Read the source in: Rust Python JSON

A Sheet as It Goes to the Press, first page

Settings Only the Press Reads

Swatches each painted under one printing setting and labelled with what it asks: overprinting, the twenty-one shapes of a halftone dot, tone curves, the four ways of converting a colour, and how finely curves are traced.

Read the source in: Rust Python

Settings Only the Press Reads, first page

A Sheet Prepared for the Printing Works

One sheet larger than the finished page: the colour runs three millimetres past the blade, the trim marks stand outside it in an ink every plate carries, every colour is said in the four printing inks, and the page names the paper, the edge of the ink and the cut. Hand it the profile of a press and it claims PDF/X-4, and the sheet prints on itself which profile it is standing on.

Read the source in: Rust Python JSON

A Sheet Prepared for the Printing Works, first page

The Same Numbers, Said so They Mean Something

Six colours and a grey ramp painted three times over with the very same numbers: first left to the device, then said in two ways that state the white they are measured against, the curve applied to them, and how far the base colours reach. A second page paints bare numbers that say nothing about what they mean, and lets the page itself say it for them. All of that travels in a handful of numbers, with no profile to carry.

Read the source in: Rust Python JSON

The Same Numbers, Said so They Mean Something, first page

The Device a File's Colours Are Meant For

The device a file's colours were chosen for, named in plain words on the page it applies to, with a ramp and one patch per base colour painted through that device's own profile. Your printing works' description does just as well.

Read the source in: Rust Python JSON

The Device a File's Colours Are Meant For, first page

One Rule Instead of a Hundred Colours

Four ways of writing down the rule a colour follows rather than the colours themselves: measured colours read off a table, a range cut into flat bands, one printing ink shown on a screen, and two rules joined end to end. Two more pages give every operation such a rule can use a grey strip of its own, then store one table at every precision, from black and white only to the finest.

Read the source in: Rust Python JSON

One Rule Instead of a Hundred Colours, first page

The Embedded ICC Profile

The ICC profile the library embeds in a PDF/A file.

Read the source in: Rust Python

This sample is a colour profile, not a page. Download it to inspect it.

Drawing, patterns and transparency

A Month's Report, Its Charts Drawn in Curves

A pie of where the hours went, a ring gauge of how far into the year the work is, a card with eased corners, and arcs told where to go rather than how far to turn.

Read the source in: Rust Python JSON

A Month's Report, Its Charts Drawn in Curves, first page

Cutting out What You Draw

The same area of stripes shown through two windows: a plain disc, and a ring whose middle is left bare.

Read the source in: Rust Python JSON

Cutting out What You Draw, first page

Transparency and Blend Modes

Half-transparent fills that overlap and mix, one orange square laid over a blue bar in four different ways of mixing colours, and a line of overlapping letters painted two ways.

Read the source in: Rust Python JSON

Transparency and Blend Modes, first page

Gradients in a Line, in a Circle, and Read from a Function

Five panels: a header that fades out, the same fade on the diagonal, a glow carried past its own circle so the corners fill, a blend that goes by way of a third colour, and a checkerboard whose colour is worked out from where each point stands, redder to the right and greener towards the top.

Read the source in: Rust Python JSON

Gradients in a Line, in a Circle, and Read from a Function, first page

Text and Shapes Filled with a Gradient

A gradient used as the colour something is filled with: a headline whose letters are windows onto a blend of three colours, a panel filled with a circular one that lets the page show through, and a band whose blend is stood upright and whose border is painted with the circular one.

Read the source in: Rust Python JSON

Text and Shapes Filled with a Gradient, first page

Four Kinds of Mesh, Every Corner Its Own Colour

Six triangles round a centre they share, their edges stroked over the paint; a lattice of points in the four printing inks; a patch whose four sides are curves; and the same patch pulled about by four points inside it.

Read the source in: Rust Python JSON

Four Kinds of Mesh, Every Corner Its Own Colour, first page

One Drawing, and Each Reader Sees Their Own

The same floor plan on six layers shown and hidden one at a time: the furniture and the distances shown, the internal notes hidden until asked for, and a draft watermark meant for the screen and not for the paper.

Read the source in: Rust Python JSON

One Drawing, and Each Reader Sees Their Own, first page

A Plan That Shows What Can Be Read

A land plan whose layers decide by themselves when to appear. A wide name stands over the plot while the plan is looked at whole, the fine wall figures come in once it is enlarged twice over, and the sentence under the plan is there in two languages, of which reading software shows the one it is set to.

Read the source in: Rust Python JSON

A Plan That Shows What Can Be Read, first page

One Drawing, Placed Many Times

One badge built as a drawing and placed eight times, plus once at half size: the file carries the drawing once, however many times it is placed. A second page shows a badge that turns itself a quarter wherever it is placed, says what it is, and holds a file of its own: the guest list.

Read the source in: Rust Python JSON

One Drawing, Placed Many Times, first page

One Pattern, Repeated across Whatever It Fills

Six panels filled with repeating patterns — bars, dots, a slant got without redrawing the pattern, a brick wall, two patterns crossing, a wider gap — and a name in large letters filled with a seal taken from a page of another PDF.

Read the source in: Rust Python JSON

One Pattern, Repeated across Whatever It Fills, first page

One Colour, Seen through Six Stencils

The same block of colour six times over, each seen through a stencil of its own: a fade for a photograph under a headline, darkened edges to hold the eye, letters cut clean out of it, a stencil taken from a shape already drawn, the same letters turned inside out, and letters softened by a curve.

Read the source in: Rust Python JSON

One Colour, Seen through Six Stencils, first page

Images

Images on a Page

A photograph that goes in exactly as it came out of the camera, and one with transparent parts that keeps them, each on a page cut to its own size.

Read the source in: Rust Python JSON

Images on a Page, first page

Pictures Made in Memory, and How Each Is Shown

Pictures built from numbers rather than read from a file, shown through transparency, masks, a colour profile, press inks and a cutting outline; one picture turned eight ways; and a PNG, a JPEG, a BMP and a TIFF read from files.

Read the source in: Rust Python

Pictures Made in Memory, and How Each Is Shown, first page

Every Picture a Scanner Put in One File

A file of three sheets and a file holding one photograph, each picture on a page cut to its own size; the photograph goes in exactly as the camera wrote it, since reading software reads a photograph itself.

Read the source in: Rust Python JSON

Every Picture a Scanner Put in One File, first page

A Picture Fitted into a Rectangle

One picture fitted into a rectangle of one size eight ways: three ways of sizing it, the same one stood in the top left corner with a 12-point inset, a quarter turn left, a quarter turn right, a turn of 20 degrees, and a left-to-right mirror — every panel drawing the picture at the place and the size the library worked out. A second page adds eight more: the picture at its own size, then twice as large and cut where it hangs over; shrunk only when it is too big; set at nine positions at once; placed a quarter of the way in and down; turned a half turn; and mirrored top to bottom.

Read the source in: Rust Python JSON

A Picture Fitted into a Rectangle, first page

Barcodes and 2D codes

Code 128 and Retail Barcodes

Stripes for the two jobs that want them: Code 128 for any text at all, and the three a till reads — EAN-13, UPC-A, EAN-8 — each with its last digit worked out rather than typed.

Read the source in: Rust Python JSON

Code 128 and Retail Barcodes, first page

QR codes

The code an invoice, a boarding pass or a label ends up wanting, drawn into the document rather than fetched as a picture and pasted in.

Read the source in: Rust Python JSON

QR codes, first page

Data Matrix Codes

The code industry marks small parts with: still readable at sizes where a QR code has given up, on a circuit board or a phial in a laboratory tray.

Read the source in: Rust Python JSON

Data Matrix Codes, first page

PDF417 Codes

The code on identity documents and shipping papers: it carries far more text than a row of bars, and it survives a laser scanner dragged across it.

Read the source in: Rust Python JSON

PDF417 Codes, first page

Aztec Codes

The code on rail and airline tickets, and the reason is room: it needs no band of white around it, which is the first thing trimmed off a layout that has run tight.

Read the source in: Rust Python JSON

Aztec Codes, first page

Codes That Name Their Character Set

Nine codes whose bytes say which character set they are written in, so Greek comes back as Greek and Cyrillic as Cyrillic, whatever set the scanner would have fallen back on.

Read the source in: Rust Python

Codes That Name Their Character Set, first page

Every Linear Barcode on One Page

Nine barcodes from the workshop, the warehouse, the till, the blood bank and the book trade, each printed above the text a scanner reads back from it.

Read the source in: Rust Python JSON

Every Linear Barcode on One Page, first page

QR and Data Matrix Settings Side by Side

The same text at the four QR correction levels, one QR code per kind of text, and Data Matrix codes on a strip or at a size chosen in advance.

Read the source in: Rust Python JSON

QR and Data Matrix Settings Side by Side, first page

Forms, stamps and overlays

An Invoice Laid on a Letterhead Template

An invoice laid over a letterhead supplied as a PDF file.

Read the source in: Rust Python JSON

An Invoice Laid on a Letterhead Template, first page

An Agreement Received and Added to without a Byte Moved

A maintenance agreement somebody else sent, with a signature area, a date and a line of one's own laid over its last page, an annex added after it and an empty place to sign over the signature area, every byte of the agreement left where it was.

Read the source in: Rust Python JSON

An Agreement Received and Added to without a Byte Moved, first page

An Agreement Built on Three Supplied Templates

A supply agreement standing on three templates the customer sent: a headed page under the front page, a plain page under every page the schedule runs to, and a page of conditions that goes in whole.

Read the source in: Rust Python JSON

An Agreement Built on Three Supplied Templates, first page

A Template Whose Regions Are Filled by Name

A delivery label on which a designer named four rectangles, read back from its own file, placed four times and filled by those names alone: an address, an order number, a logo drawn from an SVG file and a return slip.

Read the source in: Rust Python JSON

A Template Whose Regions Are Filled by Name, first page

The Watermark a Trial Copy Carries

What you get before you pay anything: a watermark across every page, and the same pages under it, laid out exactly as a paid copy lays them out. This is also the document that says what a licence key changes, and why every figure on this site is measured with one.

Read the source in: Rust Python JSON

The Watermark a Trial Copy Carries, first page

An Interactive Form

A form a reader fills in: text boxes, a check box, a drop-down, radio buttons.

Read the source in: Rust Python JSON

An Interactive Form, first page

A Document Signed with a Demonstration Certificate

A page carrying a digital signature that any change to the file breaks, made with a certificate that exists only for the demonstration. Every command that made the key and the signature is printed on the page, with the one that checks it without this library.

Read the source in: Rust Python

A Document Signed with a Demonstration Certificate, first page

Two Signatures Added to a File Received

A finished file with no form and no place to sign is given two, then signed twice. Each step is added after the file's last byte, so the first signature still covers exactly what it covered, and OpenSSL checks both without this library.

Read the source in: Rust Python

Two Signatures Added to a File Received, first page

An Archivable PDF/A-3 Form

A form that is also a PDF/A-3 file: every field already drawn, with a visible frame, expecting nothing from reading software.

Read the source in: Rust Python JSON

An Archivable PDF/A-3 Form, first page

Archiving, accessibility and metadata

A Sheet That Measures What It Says

Three rulers — centimetres, inches and points — on a page that tells whatever prints it to put it out at exactly the size it was drawn, and to offer nothing else. Lay a tape measure on the printed sheet and you can check for yourself.

Read the source in: Rust Python JSON

A Sheet That Measures What It Says, first page

A Register Whose Pages Say Where They Came From

Two sittings bound into one file. Each page carries a record of its own — what it is, whose hand wrote it, the day it was written — the photograph on the second page carries one too, and each transcription is tied to the page it transcribes rather than to the file at large.

Read the source in: Rust Python JSON

A Register Whose Pages Say Where They Came From, first page

A File That Explains Its Own Entries

A records office's reference, the department it came from, the date until which the document must be kept and its classification, carried inside a file an archive still accepts. No archiving rule knows what a keep-until date is, so each entry carries a description of itself, and that description is what makes a checker accept a fact you alone invented. A second page adds a loan record whose entries are a yes or no, a type of file, a person's name, a measurement and two web addresses, and gives that page a hidden record of its own.

Read the source in: Rust Python JSON

A File That Explains Its Own Entries, first page

A Delivery Note That Knows Its Own Order

Every line of the note carries the order it was picked for, the article code and the shelf it came off, and prints none of them. The place where the driver signs carries the round and the van, and one beside the fold tick carries nothing but its own place.

Read the source in: Rust Python JSON

A Delivery Note That Knows Its Own Order, first page

A Document That Can Be Read Aloud

Two pages carrying a copy of themselves that nobody sees: this is a heading, this is a table, and this is the order to read them in. Software reading the document aloud follows that instead of the order the marks were drawn in, and skips the running head. On the page, nothing looks any different.

Read the source in: Rust Python JSON

A Document That Can Be Read Aloud, first page

A List Whose Pictures Speak Too

A parts list whose first column is a picture rather than a word. Each picture carries the sentence somebody hears in its place, so nothing in the list is lost on a reader who cannot see it. On the page, the pictures are simply pictures.

Read the source in: Rust Python JSON

A List Whose Pictures Speak Too, first page

A Tagged Notice That Says What Each Part Is

A delivery notice whose hidden structure says where each element stands, what an abbreviation stands for and which headings each table cell belongs to, with its running head, page number and line numbers marked as page furniture; then every list numbering and every role an element can be given.

Read the source in: Rust Python

A Tagged Notice That Says What Each Part Is, first page

Factur-X: The Electronic Invoice

The electronic invoice French law has required since September 2026: one file, a page a person reads and the same invoice inside it as XML. Nothing to reconcile afterwards, because there is only ever one invoice.

Read the source in: Rust Python JSON

Factur-X: The Electronic Invoice, first page

An Invoice That Asks Before It Claims

The library reads the invoice as it stands and names, clause by clause, everything between it and Factur-X. Two things stand in the way, then one, then none — and only then is a file written.

Read the source in: Rust Python JSON

An Invoice That Asks Before It Claims, first page

A PDF/A-1b Certificate of Employment

A certificate written to the first and strictest part of the archival standard: PDF 1.4, nothing see-through, nothing that can be switched off, no attachment.

Read the source in: Rust Python JSON

A PDF/A-1b Certificate of Employment, first page

A Tagged PDF/A-1a Deed of Deposit

The first part of the archival standard at its highest level: the page also says which line is the heading, which blocks are paragraphs and what is mere decoration.

Read the source in: Rust Python JSON

A Tagged PDF/A-1a Deed of Deposit, first page

PDF/A-2b Minutes Kept for Thirty Years

Minutes of a works council written to the second part of the archival standard, at the level that promises only that the page will look the same in thirty years.

Read the source in: Rust Python JSON

PDF/A-2b Minutes Kept for Thirty Years, first page

A Searchable PDF/A-2u Deed of Assignment

The level above the plain one: every letter on the page can be searched and copied out, so a registry finds the deed and a clerk copies a clause as it stands.

Read the source in: Rust Python JSON

A Searchable PDF/A-2u Deed of Assignment, first page

A Tagged PDF/A-2a Notice of Rate Change

A notice written to the second part of the archival standard at its highest level, which software reading aloud follows in the order the text is meant to be read in.

Read the source in: Rust Python JSON

A Tagged PDF/A-2a Notice of Rate Change, first page

PDF/A-3u Meter Readings with Their Table Attached

A quarter's meter readings that a person reads on the page and a billing program takes from the table attached to the same file.

Read the source in: Rust Python JSON

PDF/A-3u Meter Readings with Their Table Attached, first page

A Tagged PDF/A-3a Schedule of Charges

A schedule a screen reader follows and a program reads from the table attached inside it: the third part of the archival standard at its highest level.

Read the source in: Rust Python JSON

A Tagged PDF/A-3a Schedule of Charges, first page

PDF/A-4 Terms of Carriage on PDF 2.0

Terms of carriage written to the fourth part of the archival standard, the one built on PDF 2.0, which drops the A, B and U levels of the earlier parts.

Read the source in: Rust Python JSON

PDF/A-4 Terms of Carriage on PDF 2.0, first page

A PDF/A-4f Statement with Its Data Attached

A statement of account on the fourth part of the archival standard, carrying the same figures as an XML file a program reads without anybody retyping them.

Read the source in: Rust Python JSON

A PDF/A-4f Statement with Its Data Attached, first page