---
name: "PDF::Builder::Basic::PDF::Dict"
section: "3pm"
platform: "linux"
package: "perl-pdf-builder"
version: "3.028-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PDF::Builder::Basic::PDF::Dict"
---

# PDF::Builder::Basic::PDF::Dict(3pm)

PDF Dictionaries and Streams Inherits from PDF::Builder::Basic::PDF::Objind

## NAME

PDF::Builder::Basic::PDF::Dict - PDF Dictionaries and Streams

Inherits from PDF::Builder::Basic::PDF::Objind

## 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

### new

```
    $d = PDF::Builder::Basic::PDF->new()
```

Creates a new instance of a dictionary. The usual practice is to call  `PDFDict()` instead.

### type

```
    $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.

### filter

```
    @filters = $d->filter(@filters)
```

Get/Set one or more filters being used by the optional stream attached to the dictionary.

### outobjdeep

```
    $d->outobjdeep($fh, $pdf)
```

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.

### read\_stream

```
    $d->read_stream($force_memory)
```

Reads in a stream from a PDF file. If the stream is greater than `"PDF::Dict::mincache"` (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.

### val

```
    $d->val()
```

Returns the dictionary, which is itself.
