Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
NameTree
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
1 / 1
 toPdf
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
4
1<?php
2
3declare(strict_types=1);
4
5namespace Phpdftk\Pdf\Core\Document;
6
7use Phpdftk\Pdf\Core\PdfArray;
8use Phpdftk\Pdf\Core\PdfDictionary;
9use Phpdftk\Pdf\Core\PdfObject;
10use Phpdftk\Pdf\Core\PdfVersion;
11use Phpdftk\Pdf\Core\RequiresPdfVersion;
12
13/**
14 * General-purpose name-keyed tree node (ISO 32000-2 Table 36).
15 *
16 * Name trees map string keys to arbitrary values. Leaf nodes contain
17 * /Names arrays; intermediate nodes contain /Kids and /Limits.
18 */
19#[RequiresPdfVersion(PdfVersion::V1_2)]
20class NameTree extends PdfObject
21{
22    public ?PdfArray $kids = null;    // /Kids - intermediate node children
23    public ?PdfArray $names = null;   // /Names - leaf node key-value pairs
24    public ?PdfArray $limits = null;  // /Limits - [min max] for intermediate nodes
25
26    public function toPdf(): string
27    {
28        $dict = new PdfDictionary();
29
30        if ($this->kids !== null) {
31            $dict->set('Kids', $this->kids);
32        }
33        if ($this->names !== null) {
34            $dict->set('Names', $this->names);
35        }
36        if ($this->limits !== null) {
37            $dict->set('Limits', $this->limits);
38        }
39
40        return $dict->toPdf();
41    }
42}