CMapParser
in package
Pdf extract CMap parser class
Parses CMap-program byte streams (used by both /ToUnicode streams and embedded /Encoding CMap streams for Type0 fonts) - reuses Extract\Tokenizer for the underlying lexical grammar, the same way Content\Interpreter reuses it for content-stream operators.
Tags
Table of Contents
Constants
- MAX_RANGE_SPAN = 65536
- Maximum span (hi - lo) allowed for a single bfrange/cidrange entry
- MAX_TOTAL_MAPPINGS = 1000000
- Maximum total mappings a single parse() call may materialize
Methods
- parse() : array<string|int, mixed>
- Parse a CMap-program byte stream into codespace ranges and bf/cid mappings
- bytesToInt() : int
- Convert a byte string to a big-endian integer
- dstToUnicodeString() : string
- Decode a bfchar/bfrange destination byte string as UTF-16BE, rejecting malformed/placeholder values
- intToUnicodeString() : string
- Convert an integer to a fixed-length big-endian byte string, then decode it as UTF-16BE
- readBfChar() : void
- Read a beginbfchar...endbfchar section
- readBfRange() : void
- Read a beginbfrange...endbfrange section
- readCidChar() : void
- Read a begincidchar...endcidchar section
- readCidRange() : void
- Read a begincidrange...endcidrange section
- readCodespaceRanges() : void
- Read a begincodespacerange...endcodespacerange section
Constants
MAX_RANGE_SPAN
Maximum span (hi - lo) allowed for a single bfrange/cidrange entry
protected
mixed
MAX_RANGE_SPAN
= 65536
MAX_TOTAL_MAPPINGS
Maximum total mappings a single parse() call may materialize
protected
mixed
MAX_TOTAL_MAPPINGS
= 1000000
Methods
parse()
Parse a CMap-program byte stream into codespace ranges and bf/cid mappings
public
static parse(string $data) : array<string|int, mixed>
Parameters
- $data : string
Return values
array<string|int, mixed>bytesToInt()
Convert a byte string to a big-endian integer
protected
static bytesToInt(string $bytes) : int
Parameters
- $bytes : string
Return values
intdstToUnicodeString()
Decode a bfchar/bfrange destination byte string as UTF-16BE, rejecting malformed/placeholder values
protected
static dstToUnicodeString(string $bytes) : string
Parameters
- $bytes : string
Return values
stringintToUnicodeString()
Convert an integer to a fixed-length big-endian byte string, then decode it as UTF-16BE
protected
static intToUnicodeString(int $value, int $byteLen) : string
Parameters
- $value : int
- $byteLen : int
Return values
stringreadBfChar()
Read a beginbfchar...endbfchar section
protected
static readBfChar(ObjectParser $parser, array<string|int, mixed> &$mappings) : void
Parameters
- $parser : ObjectParser
- $mappings : array<string|int, mixed>
readBfRange()
Read a beginbfrange...endbfrange section
protected
static readBfRange(ObjectParser $parser, array<string|int, mixed> &$mappings) : void
Parameters
- $parser : ObjectParser
- $mappings : array<string|int, mixed>
readCidChar()
Read a begincidchar...endcidchar section
protected
static readCidChar(ObjectParser $parser, array<string|int, mixed> &$mappings) : void
Parameters
- $parser : ObjectParser
- $mappings : array<string|int, mixed>
readCidRange()
Read a begincidrange...endcidrange section
protected
static readCidRange(ObjectParser $parser, array<string|int, mixed> &$mappings) : void
Parameters
- $parser : ObjectParser
- $mappings : array<string|int, mixed>
readCodespaceRanges()
Read a begincodespacerange...endcodespacerange section
protected
static readCodespaceRanges(ObjectParser $parser, array<string|int, mixed> &$ranges) : void
Parameters
- $parser : ObjectParser
- $ranges : array<string|int, mixed>