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