### ----------------------------------------------------
### -- PDF::ISO_32000_2
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: resources/ISO_32000_2/misc/Table_F4-Page_offset_hint_table.json
### ----------------------------------------------------
{
  "table": {
    "caption": "Table F.4 — Page offset hint table, per-page entry",
    "head": [
      "Item",
      "Size (bits)",
      "Description"
    ],
    "rows": [
      [
        "1",
        "See \"Table F.3 — Page offset hint table, header section\", item 3",
        "A number that, when added to the least number of objects in a page (\"Table F.3 — Page offset hint table, header section\", item 1), shall give the number of objects in the page. The first object of the first page has an object number that is the value of the O entry in the linearization parameter dictionary at the beginning of the PDF file. The first object of the second page has an object number of 1. Object numbers for subsequent pages is determined by accumulating the number of objects in all previous pages."
      ],
      [
        "2",
        "See \"Table F.3 — Page offset hint table, header section\", item 5",
        "A number that, when added to the least page length (\"Table F.3 — Page offset hint table, header section\", item 4), shall give the length of the page in bytes. The location of the first object of the first page may be determined from its object number (the O entry in the linearization parameter dictionary) and the cross-reference table entry for that object; see F.3.4, \"First-page cross-reference table and trailer (Part 3)\". The locations of subsequent pages is determined by accumulating the lengths of all previous pages. A PDF processor skips over the primary hint stream, wherever it is located."
      ],
      [
        "3",
        "See \"Table F.3 — Page offset hint table, header section\", item 10",
        "The number of shared objects referenced from the page. For the first page, this number is 0; the next two items start with the second page."
      ],
      [
        "4",
        "See \"Table F.3 — Page offset hint table, header section\", item 11",
        "(One item for each shared object referenced from the page) A shared object identifier — that is, an index into the shared object hint table (described in F.4.3, \"Shared object hint table\"). A single entry in the shared object hint table may designate a group of shared objects, but only one of which is referenced from outside the group. That is, shared object identifiers is not directly related to object numbers.\nThis identifier combines with the numerators provided in item 5 to form a shared object reference."
      ],
      [
        "5",
        "See \"Table F.3 — Page offset hint table, header section\", item 12",
        "(One item for each shared object referenced from the page) The numerator of the fractional position for each shared object reference, which is in the same order as the preceding item. The fraction indicates where in the page’s content stream the shared object is first referenced. This item is interpreted as the numerator of a fraction whose denominator is specified once for the entire document (\"Table F.3 — Page offset hint table, header section\", item 13).\nEXAMPLE If the denominator is d, a numerator ranging from 0 to d - 1 indicates the corresponding portion of the page’s content stream. For example, if the denominator is 4, a numerator of 0, 1, 2, or 3 indicates that the first reference lies in the first, second, third, or fourth quarter of the content stream, respectively. There are two (or more) other values for the numerator, which indicates that the shared object is not referenced from the content stream but instead is needed by annotations or other objects that are drawn after the contents. The value d indicates that the shared object is needed before image XObjects and other nonshared objects that are at the end of the page. A value of d + 1 or greater indicates that the shared object is needed after those objects.\nNOTE This method of dividing the page into fractions is only approximate. Determining the first reference to a shared object entails inspecting the unencoded content stream. The relationship between positions in the unencoded and encoded streams is not necessarily linear."
      ],
      [
        "6",
        "See \"Table F.3 — Page offset hint table, header section\", item 7",
        "A number that, when added to the least offset to the start of the content stream (\"Table F.3 — Page offset hint table, header section\", item 6), shall give the offset in bytes of the start of the page’s content stream (the stream object, not the stream data), relative to the beginning of the page."
      ],
      [
        "7",
        "See \"Table F.3 — Page offset hint table, header section\", item 9",
        "A number that, when added to the least content stream length (\"Table F.3 — Page offset hint table, header section\", item 8), shall give the length of the page’s content stream in bytes. This length includes object overhead preceding and following the stream data."
      ]
    ]
  }
}


