Documentation

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
category

Pop

author

Nick Sagona, III nick@popphp.org

copyright

Copyright (c) 2009-2026 Nick Sagona, III

license

https://www.popphp.org/license New BSD License

version
6.0.0

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
int

dstToUnicodeString()

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
string

intToUnicodeString()

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
string

readBfChar()

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>

        
On this page

Search results