The order one field leads to the next

Say the order the tab key walks a page's links and fields in: row by row, or column by column.

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

In plain words

Written for anybody. It says what this puts on a sheet of paper, and asks nothing of you beyond that.

On a form filled in on screen, one key jumps from box to box. Still, something has to decide which box is "the next one". On a form in two columns, you may want to go all the way down the left column before moving to the right, or to cross the page line by line. You say it here, page by page, and the reader follows.

For a developer

Written for somebody who writes the calling program: the model, the units, and the settings that carry the weight.

page_tab_orders sets, page by page, the order a reader walks everything a page carries as annotations: its links, its form fields and the rest. Five orders exist, two of which came late to the format and ask the document to declare version 2.0. A page no entry names leaves the order to the reader; in a tagged document, a page carrying a link or a field states the structure order of its own accord.

Every key, with its default

The reference: which keys are required, which are optional, what each one defaults to and which combinations the server declines.

  • page_tab_orders — array, optional, empty by default.
  • page_tab_orders[].page — integer ≥ 1, required. The page the entry is for.
  • page_tab_orders[].order — string, required. Five values: row (across the page, then down it), column (down the page, then across it), structure (the order the structure tree reads the page in), annotations (the order the page lists its annotations in), widgets (the same, the fields first).
  • annotations and widgets ask the request for "version": "2.0"; short of that the render is refused rather than write an order the declared version could not be read to hold.

An entry says how a page is walked, not that there is one. A page named twice takes the last order given for it.

A whole request that draws it

Post this as it stands and a PDF comes back. Nothing has been left out of it.

{
  "page_tab_orders": [{ "page": 1, "order": "row" }],
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 60, "lly": 740, "urx": 535, "ury": 760 },
      "content": ["Two links, walked across the page"],
      "font": "sans",
      "font_size": 12
    },
    {
      "type": "link",
      "rect": { "llx": 60, "lly": 700, "urx": 160, "ury": 720 },
      "to": { "uri": "https://hqf-pdf.com/" }
    },
    {
      "type": "link",
      "rect": { "llx": 200, "lly": 700, "urx": 300, "ury": 720 },
      "to": { "uri": "https://hqf-pdf.com/en/" }
    }
  ]
}

The line that sends it, in three languages

Finding one's way through it

The clickable contents down the side Landing places that carry a name Following an article column by column How the document opens and prints

Where to go next

Every key of a request, in one page The other thirty-two settings of a request

See the prices See the examples

Glossary

tagged PDF
A PDF that carries the structure of its own text alongside the drawing: this is a heading, this is a table, this cell belongs to that column. It is what lets a reading aid, or a program pulling data back out, make sense of the page.
request
One call to the service: you send what the document should say, and get the document back. Your bill counts these calls, one for each document. The number of pages inside a document is never counted.
annotation
Something laid over a page rather than drawn into it: a clickable rectangle, a box to type in, a button. It sits at its own place on the sheet and is what makes a PDF answer to a click at all.
form field
A box on a PDF page somebody can fill in, tick or choose from, and whose answer the file keeps. It has a name, so whoever collects the file reads the answers back by name rather than by looking at the page.

Every word the site explains