xref: /plugin/dw2pdf/vendor/setasign/fpdi/src/PdfReader/PageBoundaries.php (revision 01d4b863f647689752623420d92bf6c538d91460)
1<?php
2
3/**
4 * This file is part of FPDI
5 *
6 * @package   setasign\Fpdi
7 * @copyright Copyright (c) 2024 Setasign GmbH & Co. KG (https://www.setasign.com)
8 * @license   http://opensource.org/licenses/mit-license The MIT License
9 */
10
11namespace setasign\Fpdi\PdfReader;
12
13/**
14 * An abstract class for page boundary constants and some helper methods
15 */
16abstract class PageBoundaries
17{
18    /**
19     * MediaBox
20     *
21     * The media box defines the boundaries of the physical medium on which the page is to be printed.
22     *
23     * @see PDF 32000-1:2008 - 14.11.2 Page Boundaries
24     * @var string
25     */
26    const MEDIA_BOX = 'MediaBox';
27
28    /**
29     * CropBox
30     *
31     * The crop box defines the region to which the contents of the page shall be clipped (cropped) when displayed or
32     * printed.
33     *
34     * @see PDF 32000-1:2008 - 14.11.2 Page Boundaries
35     * @var string
36     */
37    const CROP_BOX = 'CropBox';
38
39    /**
40     * BleedBox
41     *
42     * The bleed box defines the region to which the contents of the page shall be clipped when output in a
43     * production environment.
44     *
45     * @see PDF 32000-1:2008 - 14.11.2 Page Boundaries
46     * @var string
47     */
48    const BLEED_BOX = 'BleedBox';
49
50    /**
51     * TrimBox
52     *
53     * The trim box defines the intended dimensions of the finished page after trimming.
54     *
55     * @see PDF 32000-1:2008 - 14.11.2 Page Boundaries
56     * @var string
57     */
58    const TRIM_BOX = 'TrimBox';
59
60    /**
61     * ArtBox
62     *
63     * The art box defines the extent of the page’s meaningful content (including potential white space) as intended
64     * by the page’s creator.
65     *
66     * @see PDF 32000-1:2008 - 14.11.2 Page Boundaries
67     * @var string
68     */
69    const ART_BOX = 'ArtBox';
70
71    /**
72     * All page boundaries
73     *
74     * @var array
75     */
76    public static $all = array(
77        self::MEDIA_BOX,
78        self::CROP_BOX,
79        self::BLEED_BOX,
80        self::TRIM_BOX,
81        self::ART_BOX
82    );
83
84    /**
85     * Checks if a name is a valid page boundary name.
86     *
87     * @param string $name The boundary name
88     * @return boolean A boolean value whether the name is valid or not.
89     */
90    public static function isValidName($name)
91    {
92        return \in_array($name, self::$all, true);
93    }
94}
95