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