protected function extract(StreamReader $reader)
    {
        $cycles = -1;
        $bytesPerCycle = 100;

        $reader->reset(null, $bytesPerCycle);

        while (
            ($trailerPos = \strpos($reader->getBuffer(false), 'trailer', \max($bytesPerCycle * $cycles++, 0))) === false
        ) {
            if ($reader->increaseLength($bytesPerCycle) === false) {
                break;
            }
        }

        if ($trailerPos === false) {
            throw new CrossReferenceException(
                'Unexpected end of cross reference. "trailer"-keyword not found.',
                CrossReferenceException::NO_TRAILER_FOUND
            );
        }

        $xrefContent = \substr($reader->getBuffer(false), 0, $trailerPos);
        $reader->reset($reader->getPosition() + $trailerPos);

        return $xrefContent;
    }
protected function extract(StreamReader $reader)
    {
        $cycles = -1;
        $bytesPerCycle = 100;

        $reader->reset(null, $bytesPerCycle);

        while (
            ($trailerPos = \strpos($reader->getBuffer(false), 'trailer', \max($bytesPerCycle * $cycles++, 0))) === false
        ) {
            if ($reader->increaseLength($bytesPerCycle) === false) {
                break;
            }
        }

        if ($trailerPos === false) {
            throw new CrossReferenceException(
                'Unexpected end of cross reference. "trailer"-keyword not found.',
                CrossReferenceException::NO_TRAILER_FOUND
            );
        }

        $xrefContent = \substr($reader->getBuffer(false), 0, $trailerPos);
        $reader->reset($reader->getPosition() + $trailerPos);

        return $xrefContent;
    }
protected function extract ( StreamReader $ reader ) { $ cycles = - 1 ; $ bytesPerCycle = 100 ; $ reader -> reset ( null , $ bytesPerCycle ) ; while ( ( $ trailerPos = \ strpos ( $ reader -> getBuffer ( false ) , 'trailer' , \ max ( $ bytesPerCycle * $ cycles ++ , 0 ) ) ) === false ) { if ( $ reader -> increaseLength ( $ bytesPerCycle ) === false ) { break ; } } if ( $ trailerPos === false ) { throw new CrossReferenceException ( 'Unexpected end of cross reference. "trailer"-keyword not found.' , CrossReferenceException :: NO_TRAILER_FOUND ) ; } $ xrefContent = \ substr ( $ reader -> getBuffer ( false ) , 0 , $ trailerPos ) ; $ reader -> reset ( $ reader -> getPosition ( ) + $ trailerPos ) ; return $ xrefContent ; }
Extracts the cross reference data from the stream reader.

@param StreamReader $reader
@return string
@throws CrossReferenceException
Extracts the cross reference data from the stream reader .