Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2/**
3 * Pop PHP Framework (http://www.popphp.org/)
4 *
5 * @link       https://github.com/popphp/popphp-framework
6 * @author     Nick Sagona, III <dev@nolainteractive.com>
7 * @copyright  Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com)
8 * @license    http://www.popphp.org/license     New BSD License
9 */
10
11/**
12 * @namespace
13 */
14namespace Pop\Pdf\Document;
15
16use Pop\Pdf\Document\Page\Annotation;
17
18/**
19 * Pdf page interface
20 *
21 * @category   Pop
22 * @package    Pop\Pdf
23 * @author     Nick Sagona, III <dev@nolainteractive.com>
24 * @copyright  Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com)
25 * @license    http://www.popphp.org/license     New BSD License
26 * @version    5.0.0
27 */
28interface PageInterface
29{
30
31    /**
32     * Set the page width
33     *
34     * @param  mixed $width
35     * @return PageInterface
36     */
37    public function setWidth(mixed $width): PageInterface;
38
39    /**
40     * Set the page height
41     *
42     * @param  mixed $height
43     * @return PageInterface
44     */
45    public function setHeight(mixed $height): PageInterface;
46
47    /**
48     * Set the page index
49     *
50     * @param  int $i
51     * @return PageInterface
52     */
53    public function setIndex(int $i): PageInterface;
54
55    /**
56     * Get the page width
57     *
58     * @return int
59     */
60    public function getWidth(): int;
61
62    /**
63     * Get the page height
64     *
65     * @return int
66     */
67    public function getHeight(): int;
68
69    /**
70     * Get the page index
71     *
72     * @return ?int
73     */
74    public function getIndex(): ?int;
75
76    /**
77     * Add an image to the PDF page
78     *
79     * @param  Page\Image $image
80     * @param  int        $x
81     * @param  int        $y
82     * @return PageInterface
83     */
84    public function addImage(Page\Image $image, int $x = 0, int $y = 0): PageInterface;
85
86    /**
87     * Add text to the PDF page
88     *
89     * @param  Page\Text $text
90     * @param  string    $fontStyle (can be either a reference to a font or a style)
91     * @param  int       $x
92     * @param  int       $y
93     * @return PageInterface
94     */
95    public function addText(Page\Text $text, string $fontStyle, int $x = 0, int $y = 0): PageInterface;
96
97    /**
98     * Add an annotation to the PDF page
99     *
100     * @param  Annotation\AbstractAnnotation $annotation
101     * @param  int                           $x
102     * @param  int                           $y
103     * @return PageInterface
104     */
105    public function addAnnotation(Annotation\AbstractAnnotation $annotation, int $x = 0, int $y = 0): PageInterface;
106
107    /**
108     * Add a URL annotation to the PDF page
109     *
110     * @param  Annotation\Url $url
111     * @param  int            $x
112     * @param  int            $y
113     * @return PageInterface
114     */
115    public function addUrl(Annotation\Url $url, int $x = 0, int $y = 0): PageInterface;
116
117    /**
118     * Add a link annotation to the PDF page
119     *
120     * @param  Annotation\Link $link
121     * @param  int             $x
122     * @param  int             $y
123     * @return PageInterface
124     */
125    public function addLink(Annotation\Link $link, int $x = 0, int $y = 0): PageInterface;
126
127    /**
128     * Add a path to the Pdf page
129     *
130     * @param  Page\Path $path
131     * @return PageInterface
132     */
133    public function addPath(Page\Path $path): PageInterface;
134
135    /**
136     * Get image objects
137     *
138     * @return array
139     */
140    public function getImages(): array;
141
142    /**
143     * Get text objects
144     *
145     * @return array
146     */
147    public function getText(): array;
148
149    /**
150     * Get annotation objects
151     *
152     * @return array
153     */
154    public function getAnnotations(): array;
155
156    /**
157     * Get path objects
158     *
159     * @return array
160     */
161    public function getPaths(): array;
162
163    /**
164     * Determine if the page has image objects
165     *
166     * @return bool
167     */
168    public function hasImages(): bool;
169
170    /**
171     * Determine if the page has text objects
172     *
173     * @return bool
174     */
175    public function hasText(): bool;
176
177    /**
178     * Determine if the page has annotation objects
179     *
180     * @return bool
181     */
182    public function hasAnnotations(): bool;
183
184    /**
185     * Determine if the page has path objects
186     *
187     * @return bool
188     */
189    public function hasPaths(): bool;
190
191}