Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
ThreeDBackground
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
1 / 1
 toPdf
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
4
1<?php
2
3declare(strict_types=1);
4
5namespace Phpdftk\Pdf\Core\ThreeD;
6
7use Phpdftk\Pdf\Core\Graphics\ColorSpace\ColorSpace;
8use Phpdftk\Pdf\Core\PdfArray;
9use Phpdftk\Pdf\Core\PdfBoolean;
10use Phpdftk\Pdf\Core\PdfDictionary;
11use Phpdftk\Pdf\Core\PdfName;
12use Phpdftk\Pdf\Core\PdfObject;
13use Phpdftk\Pdf\Core\PdfVersion;
14use Phpdftk\Pdf\Core\RequiresPdfVersion;
15
16/**
17 * 3D background dictionary (/Type /3DBG) — ISO 32000-2 §13.6.5.
18 */
19#[RequiresPdfVersion(PdfVersion::V1_6)]
20class ThreeDBackground extends PdfObject
21{
22    public const PDF_TYPE = '3DBG';
23
24    public ColorSpace|PdfName|PdfArray|null $cs = null;  // /CS colorspace
25    public ?PdfArray $c = null;                          // /C  color
26    public ?bool $ea = null;                             // /EA apply also to crossing sections
27
28    public function toPdf(): string
29    {
30        $dict = new PdfDictionary();
31        $dict->set('Type', new PdfName(self::PDF_TYPE));
32        if ($this->cs !== null) {
33            $dict->set('CS', $this->cs);
34        }
35        if ($this->c !== null) {
36            $dict->set('C', $this->c);
37        }
38        if ($this->ea !== null) {
39            $dict->set('EA', new PdfBoolean($this->ea));
40        }
41        return $dict->toPdf();
42    }
43}