# phpman > man > PDF::API2::Basic::PDF::Dict

## NAME
    [PDF::API2::Basic::PDF::Dict](https://www.chedong.com/phpMan.php/perldoc/PDF%3A%3AAPI2%3A%3ABasic%3A%3APDF%3A%3ADict/markdown) - Low-level dictionary and stream objects

## INSTANCE VARIABLES
    There are various special instance variables which are used to look after, particularly,
    streams. Each begins with a space:

    stream
        Holds the stream contents for output

    streamfile
        Holds the stream contents in an external file rather than in memory. This is not the same as
        a PDF file stream. The data is stored in its unfiltered form.

    streamloc
        If both ' stream' and ' streamfile' are empty, this indicates where in the source PDF the
        stream starts.

## METHODS
  $type = $d->type($type)
    Get/Set the standard Type key. It can be passed, and will return, a text value rather than a
    Name object.

  @filters = $d->filter(@filters)
    Get/Set one or more filters being used by the optional stream attached to the dictionary.

  $d->outobjdeep($fh)
    Outputs the contents of the dictionary to a PDF file. This is a recursive call.

    It also outputs a stream if the dictionary has a stream element. If this occurs then this method
    will calculate the length of the stream and insert it into the stream's dictionary.

  $d->read_stream($force_memory)
    Reads in a stream from a PDF file. If the stream is greater than "[PDF::Dict::mincache](https://www.chedong.com/phpMan.php/perldoc/PDF%3A%3ADict%3A%3Amincache/markdown)" (defaults
    to 32768) bytes to be stored, then the default action is to create a file for it somewhere and
    to use that file as a data cache. If $force_memory is set, this caching will not occur and the
    data will all be stored in the $self->{' stream'} variable.

  $d->val
    Returns the dictionary, which is itself.

