The data a program hangs on a run of ink

Hang a list of your own data on a run of ink of the page, under a name you choose. Nothing of it is drawn, and no reading software shows it.

Summary

A warehouse prints a picking list and a scanner reads it back. What the scanner needs is the order line behind each row — the article code, the quantity — and none of that belongs on the paper. So it travels under the row instead of on it: you declare the list once, you hang it on the row, and a program opening the file afterwards finds it exactly there. The names in the list are yours, and nothing here reads them.

Technically

Written at the top level of a request, under "carried_facts"

carried_facts writes one dictionary per list as an object of its own and names it in the /Properties of every page, and an item naming one brackets everything it draws between /Tag /MC1 BDC … EMC. The run carries no /MCID, so the structure tree points at nothing there: facts is stated with tag and never beside mark, and either way round is refused. A list is written once however many items name it, and may be hung on runs on as many pages as the document has. A name no entry declared is refused before anything is drawn, and an item inside a named drawing states none of this.

Request schema

  • carried_facts — array, optional, empty by default.
  • carried_facts[].name — string, required. The name items hang this list on what they draw by.
  • carried_facts[].facts — object, optional, empty by default. The entries, under your own names. A value is a string, a whole number, a number or a boolean; nothing here reads them.
  • An item hangs one on what it draws through its facts key, carrying the name declared here, beside the tag it opens the run under. An item with no facts carries none.
  • facts beside mark is refused, and facts without tag is refused: a run carrying a list carries no number, so the structure tree can claim nothing there.

Scope: one run of ink. private_data leaves the same on the whole document, page_private_data on one page, and drawings[].private_data on a named drawing.

A whole request that creates a PDF

{
  "carried_facts": [
    {
      "name": "Line",
      "facts": {
        "order": "SO-4417",
        "quantity": 3,
        "price": 12.5,
        "urgent": true
      }
    }
  ],
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 72, "lly": 700, "urx": 523, "ury": 740 },
      "content": ["Three widgets, blue"],
      "font": "sans",
      "font_size": 12,
      "tag": "Line",
      "facts": "Line"
    }
  ]
}

The line that sends it, in three languages

The document as a whole

The numbers reading software shows A hundred letters in a single file What the document says about itself What the document says about itself, said once The notes a program leaves in the file for itself The notes a program leaves on one page A file still readable decades from now The print standard the document claims The password that opens it, and what may be done with it An invoice a person and a machine both read The address relative links are read against The PDF version the file declares What a picture says about itself, and how it is read The attachments the document carries beside its pages The attachments shown as a portfolio Which attachments a page claims The identity card a single page carries The accessibility standard the document claims The standards the finished document is measured against

Where to go next

Every JSON key of a request, in one page The other forty-one settings of a request

See the prices See the examples