| Phpdftk\Pdf\Reader\PdfReader::getPageOffsetHintTable | 202.07 | 23.1% |
| Phpdftk\Pdf\Reader\TextExtractor::processOps | 116.46 | 69.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::buildEncodingMap | 92.17 | 30.0% |
| Phpdftk\Pdf\Reader\TextExtractor::buildEncodingMap | 92.17 | 30.0% |
| Phpdftk\Pdf\Reader\PdfReader::validateVersion | 66.39 | 63.4% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::processOps | 58.80 | 89.2% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::showTJArray | 30 | 95.8% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::getContentStreamData | 29.41 | 36.8% |
| Phpdftk\Pdf\Reader\PdfDecryptor::fromEncryptDictPublicKey | 29.23 | 85.5% |
| Phpdftk\Pdf\Reader\TextExtractor::loadFontMapsFromResources | 29.05 | 67.6% |
| Phpdftk\Pdf\Reader\PdfReader::build | 25 | 98.0% |
| Phpdftk\Pdf\Reader\TextExtractor::decodeTJArray | 23.16 | 93.3% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::parse | 20 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\XrefStreamParser::parseXrefStream | 20 | 98.2% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadCidWidths | 18.74 | 60.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineImage | 17 | 100.0% |
| Phpdftk\Pdf\Reader\PdfDecryptor::fromEncryptDict | 17 | 98.4% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::decodeJbig2 | 15.28 | 36.4% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::unescapeLiteralString | 15.28 | 76.2% |
| Phpdftk\Pdf\Reader\TextExtractor::unescapeLiteralString | 15.28 | 76.2% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::extractFromXObject | 15.21 | 81.6% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readKeyword | 15 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readEscapeSequence | 14.35 | 80.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadGlyphWidths | 14 | 96.9% |
| Phpdftk\Pdf\Reader\Parser\HintTableParser::parsePageOffsetTable | 13.04 | 94.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadEncodingMap | 13 | 96.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readToken | 13 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::skipWhitespaceAndComments | 13 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseTokenValue | 12 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::decode | 12 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\XrefParser::readWord | 12 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readHexString | 12 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::resolveInUse | 11.78 | 73.9% |
| Phpdftk\Pdf\Reader\PdfReader::isLinearized | 11.56 | 75.0% |
| Phpdftk\Pdf\Reader\Parser\XrefParser::parseClassicXref | 11.41 | 85.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::unpack | 11 | 97.4% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::resolveDecodeParms | 10.98 | 78.6% |
| Phpdftk\Pdf\Reader\ObjectResolver::recoverByRescan | 10.93 | 78.9% |
| Phpdftk\Pdf\Reader\PdfReader::recoverCatalog | 10.80 | 80.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::getNamedEncodingTable | 10.50 | 50.0% |
| Phpdftk\Pdf\Reader\TextExtractor::getNamedEncodingTable | 10.50 | 50.0% |
| Phpdftk\Pdf\Reader\TextExtractor::getContentStreamData | 10.48 | 73.7% |
| Phpdftk\Pdf\Reader\TextExtractor::extractLiteralString | 10.37 | 66.7% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::scanForEndstream | 10.24 | 86.7% |
| Phpdftk\Pdf\Reader\TextExtractor::extractFromXObject | 10.20 | 87.5% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::mapBytesToUnicode | 10.07 | 91.3% |
| Phpdftk\Pdf\Reader\TextExtractor::mapBytesToUnicode | 10.07 | 91.3% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readArray | 10 | 95.5% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::decodeCCITTFax | 9.49 | 81.8% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decryptObject | 9.29 | 44.4% |
| Phpdftk\Pdf\Reader\PdfReader::findCatalogInScan | 9.16 | 87.5% |
| Phpdftk\Pdf\Reader\PdfDecryptor::fromEncryptDictR6 | 9.02 | 93.8% |
| Phpdftk\Pdf\Reader\Parser\XrefParser::skipWhitespace | 9 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::collectPages | 8.43 | 69.2% |
| Phpdftk\Pdf\Reader\TextExtractor::extractActualText | 8.30 | 60.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::extractLiteralString | 8.19 | 85.7% |
| Phpdftk\Pdf\Reader\PdfReader::getLinearizationParameters | 8.06 | 90.5% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decryptDictionary | 8.03 | 92.3% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readLiteralString | 8.01 | 94.1% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isDelimiter | 8 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readLiteralString | 8 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::boolParam | 7.91 | 37.5% |
| Phpdftk\Pdf\Reader\TextExtractor::inferSpacing | 7.46 | 40.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::readOctalOrLiteral | 7.29 | 81.8% |
| Phpdftk\Pdf\Reader\TextExtractor::readOctalOrLiteral | 7.29 | 81.8% |
| Phpdftk\Pdf\Reader\PdfReader::getCatalog | 7.08 | 88.2% |
| Phpdftk\Pdf\Reader\TextExtractor::extractSpaceWidth | 7.02 | 92.3% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadFontDataFromResources | 7.01 | 94.1% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readNumber | 7 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::peek | 7 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readNumber | 7 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readOctalOrLiteral | 6.40 | 77.8% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadDefaultWidth | 6.09 | 86.7% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::extractActualText | 6.09 | 86.7% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseStream | 6.07 | 87.5% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::parseStringOperand | 6.05 | 88.9% |
| Phpdftk\Pdf\Reader\TextExtractor::parseStringOperand | 6.05 | 88.9% |
| Phpdftk\Pdf\Reader\ObjectResolver::resolve | 6.04 | 90.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readInlineDict | 6.02 | 92.3% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionary | 6.01 | 93.3% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isWhitespace | 6 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\HintTableParser::parseSharedObjectTable | 6 | 97.3% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIndirectObject | 6 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::skipStreamTrailer | 6 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::resolveFilterNames | 6 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::computeStringDisplacement | 6 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readName | 6 | 100.0% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decryptArray | 5.20 | 80.0% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decrypt | 5.15 | 81.8% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::winAnsiFallback | 5.01 | 92.9% |
| Phpdftk\Pdf\Reader\TextExtractor::winAnsiFallback | 5.01 | 92.9% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::read | 5.01 | 93.3% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::isNumberStart | 5 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::getPageByteRange | 5 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getEffectiveVersion | 5 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::findStartxref | 5 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::tryLoadStandardFontWidths | 5 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::extractHexString | 5 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::extractHexString | 5 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::readByte | 5 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::resolveCompressed | 4.25 | 75.0% |
| Phpdftk\Pdf\Reader\PdfReader::getPageByteRange | 4.12 | 50.0% |
| Phpdftk\Pdf\Reader\PdfReader::reconstructXref | 4.09 | 82.4% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseArray | 4.02 | 88.9% |
| Phpdftk\Pdf\Reader\ObjectResolver::rescanFile | 4 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\BitReader::readBits | 4 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readHexString | 4 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readName | 4 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamParser::readKeyword | 4 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\XrefParser::readLine | 4 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getPageCount | 4 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::extractFileId | 4 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::fromStream | 3.33 | 66.7% |
| Phpdftk\Pdf\Reader\PdfReader::getPages | 3.07 | 80.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::intParam | 3.04 | 83.3% |
| Phpdftk\Pdf\Reader\PdfDecryptor::intVal | 3.04 | 83.3% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decryptStream | 3.03 | 85.7% |
| Phpdftk\Pdf\Reader\PdfReader::getTypedCatalog | 3.02 | 87.5% |
| Phpdftk\Pdf\Reader\TextExtractor::extractFromPage | 3.02 | 87.5% |
| Phpdftk\Pdf\Reader\ObjectResolver::mergeOlderEntries | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseIntegerOrReference | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectScanner::scan | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::applyPredictor | 3 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getInfo | 3 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getTypedPages | 3 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getTypedObject | 3 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::extractFromPage | 3 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::containsMultibyte | 3 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::containsMultibyte | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::fillBuffer | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::isDelimiterOrWhitespace | 3 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::readByte | 2.15 | 66.7% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::tell | 2.15 | 66.7% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::handleLineContinuation | 2.15 | 66.7% |
| Phpdftk\Pdf\Reader\PdfDecryptor::stringVal | 2.06 | 75.0% |
| Phpdftk\Pdf\Reader\PdfReader::getTypedPage | 2.02 | 83.3% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::__construct | 2.02 | 83.3% |
| Phpdftk\Pdf\Reader\PdfDecryptor::deriveObjectKey | 2.01 | 87.5% |
| Phpdftk\Pdf\Reader\TextExtractor::loadFontMaps | 2.01 | 85.7% |
| Phpdftk\Pdf\Reader\ObjectResolver::has | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\BitReader::alignToByte | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseDictionaryOrStream | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::expect | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::decodeLzw | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PdfDecryptor::decryptString | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getPage | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::extractAllText | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::extractAllTextWithPositions | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::parseXrefAt | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::showString | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::buildSpanForText | 2.00 | 94.1% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::loadFontData | 2 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::resolveValue | 2 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::resolveValue | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::__destruct | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::nextToken | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::peek | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readAngleBracketToken | 2 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::readDictEnd | 2 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::setStrict | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::resolveReference | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::getEntry | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::getObjectNumbers | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::getEntries | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::scanObjectMap | 1 | 100.0% |
| Phpdftk\Pdf\Reader\ObjectResolver::readRaw | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\BitReader::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\BitReader::getBitPosition | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\BitReader::getBytePosition | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ContentStreamOp::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\HintTableParser::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectParser::parseValue | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\ObjectStreamParser::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\PageHintEntry::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\PageOffsetHintTable::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\SharedObjectHintEntry::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\SharedObjectHintTable::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::setResolver | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\StreamParser::decodeFlate | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\XrefParser::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Parser\XrefStreamParser::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfDecryptor::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getParseWarnings | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::fromFile | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::fromString | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::fromFilePublicKey | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::fromStringPublicKey | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getVersion | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getPdfVersion | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getTrailer | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getObject | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::resolveReference | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::getResolver | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::extractText | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PdfReader::extractTextWithPositions | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::advanceTextMatrix | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::textToUserSpace | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::getEffectiveFontSize | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::multiplyMatrices | 1 | 100.0% |
| Phpdftk\Pdf\Reader\PositionedTextExtractor::decodeName | 1 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::decodeStringOperand | 1 | 100.0% |
| Phpdftk\Pdf\Reader\TextExtractor::decodeName | 1 | 100.0% |
| Phpdftk\Pdf\Reader\TextSpan::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::seek | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::tell | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::size | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::isEof | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\FileSource::invalidateBuffer | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::read | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::peek | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::seek | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::tell | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::size | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\StringSource::isEof | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Token::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::__construct | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::getSource | 1 | 100.0% |
| Phpdftk\Pdf\Reader\Tokenizer\Tokenizer::seek | 1 | 100.0% |
| Phpdftk\Pdf\Reader\XrefEntry::__construct | 1 | 100.0% |