Binary layer: Uint8Array → tokens → typed objects → xref table → trailer.
| Module | Returns | Deps | Description |
|---|---|---|---|
pdfTokenizer |
{ tokenize, lastIndexOfBytes } |
pdfErrors, pdfShared |
Lexer §7.2. |
pdfParserObj |
{ obj, getEntry, isType } |
none | Typed-object builders and reflection helpers. |
pdfParser |
{ tokenize, parseObject, parseIndirect, parseFromBytes, parseIndirectFromBytes, parserLimits, setParserLimits, obj, getEntry, isType } |
pdfErrors, pdfParserObj, pdfTokenizer |
Typed objects §7.3. |
pdfXref |
{ locateStartXref, readStartXref, parseXrefTable, parseTrailerDict, readXrefStreamDict, buildXrefStream } |
pdfErrors, pdfTokenizer, pdfParser |
Classical table §7.5.4. |
pdfTrailer |
{ typeTrailer } |
pdfErrors, pdfParserObj |
Typed trailer §7.5.5. |
pdfSerializer |
{ serializeObject, serializeIndirect, formatReal } |
pdfErrors |
Object emission §7.3. |
pdfObjStream |
{ parseObjectStream } |
pdfErrors, pdfParserObj, pdfTokenizer, pdfParser |
Object streams §7.5.7. |
pdfCrossRefStream |
{ parseCrossRefStream } |
pdfErrors, pdfParserObj |
Cross-reference streams §7.5.8. |
| Filters | { decode, encode } × 4 + dispatch |
pdfErrors, zlib |
The /Filter chain §7.4. |
Common pattern
const tokMod = runtime.resolve('pdfTokenizer');
const tok = tokMod.tokenize(bytes);
let t;
while ((t = tok.next())) { /* … */ }