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.
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 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 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 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 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 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 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 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 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 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 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
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
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
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
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
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
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
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
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 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
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
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
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
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 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
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
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 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
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
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
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 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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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 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
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
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
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 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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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 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 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
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
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
A Gallery of Picture Formats
The four picture formats read — JPEG, PNG, BMP and TIFF — shown across every picture shipped with the library, each captioned with what its own file declares.
Read the source in: Rust Python JSON
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
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
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
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
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
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
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
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
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
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
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 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 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
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
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
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
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
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
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
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 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 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 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 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 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 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
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
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
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 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
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
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 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
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
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
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
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