PluginProbe
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin / 6.5.1.7
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin v6.5.1.7
6.5.1.7 6.5.1.6 6.5.1.5 6.5.1.4 6.5.1.3 6.5.1.2 6.5.1.1 6.5.0.9 6.5.0.8 6.5.0.7 6.5.0.6 trunk 3.4.2.40 3.4.2.41 3.4.2.42 3.4.2.43 3.4.2.44 3.4.2.45 3.4.2.46 3.4.2.47 3.4.2.48 3.4.2.49 3.4.2.50 6.3.2 6.3.3.1 All 47 releases
wpdatatables / lib / phpoffice / phpspreadsheet / src / PhpSpreadsheet / Writer / Pdf.php

Pdf.php in wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin 6.5.1.7, at lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Pdf.php

252 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PhpOffice\PhpSpreadsheet\Writer;
4
5 use PhpOffice\PhpSpreadsheet\Shared\File;
6 use PhpOffice\PhpSpreadsheet\Spreadsheet;
7 use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
8 use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
9
10 abstract class Pdf extends Html
11 {
12 /**
13 * Temporary storage directory.
14 *
15 * @var string
16 */
17 protected $tempDir = '';
18
19 /**
20 * Font.
21 *
22 * @var string
23 */
24 protected $font = 'freesans';
25
26 /**
27 * Orientation (Over-ride).
28 *
29 * @var ?string
30 */
31 protected $orientation;
32
33 /**
34 * Paper size (Over-ride).
35 *
36 * @var ?int
37 */
38 protected $paperSize;
39
40 /**
41 * Paper Sizes xRef List.
42 *
43 * @var array
44 */
45 protected static $paperSizes = [
46 PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.)
47 PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.)
48 PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], // (11 in. by 17 in.)
49 PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], // (17 in. by 11 in.)
50 PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.)
51 PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], // (5.5 in. by 8.5 in.)
52 PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.)
53 PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm)
54 PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm)
55 PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm)
56 PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm)
57 PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm)
58 PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm)
59 PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.)
60 PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], // (215 mm by 275 mm)
61 PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], // (10 in. by 14 in.)
62 PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], // (11 in. by 17 in.)
63 PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.)
64 PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], // (3.875 in. by 8.875 in.)
65 PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], // (4.125 in. by 9.5 in.)
66 PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], // (4.5 in. by 10.375 in.)
67 PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], // (4.75 in. by 11 in.)
68 PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], // (5 in. by 11.5 in.)
69 PageSetup::PAPERSIZE_C => [1224.00, 1584.00], // (17 in. by 22 in.)
70 PageSetup::PAPERSIZE_D => [1584.00, 2448.00], // (22 in. by 34 in.)
71 PageSetup::PAPERSIZE_E => [2448.00, 3168.00], // (34 in. by 44 in.)
72 PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], // (110 mm by 220 mm)
73 PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm)
74 PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm)
75 PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm)
76 PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm)
77 PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], // (114 mm by 229 mm)
78 PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm)
79 PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm)
80 PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], // (176 mm by 125 mm)
81 PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], // (110 mm by 230 mm)
82 PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], // (3.875 in. by 7.5 in.)
83 PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], // (3.625 in. by 6.5 in.)
84 PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], // (14.875 in. by 11 in.)
85 PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], // (8.5 in. by 12 in.)
86 PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.)
87 PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm)
88 PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], // (200 mm by 148 mm)
89 PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], // (9 in. by 11 in.)
90 PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], // (10 in. by 11 in.)
91 PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], // (15 in. by 11 in.)
92 PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], // (220 mm by 220 mm)
93 PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.)
94 PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], // (9.275 in. by 15 in.)
95 PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], // (11.69 in. by 18 in.)
96 PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], // (236 mm by 322 mm)
97 PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], // (8.275 in. by 11 in.)
98 PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm)
99 PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.)
100 PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], // (227 mm by 356 mm)
101 PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], // (305 mm by 487 mm)
102 PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], // (8.5 in. by 12.69 in.)
103 PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], // (210 mm by 330 mm)
104 PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm)
105 PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], // (182 mm by 257 mm)
106 PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], // (322 mm by 445 mm)
107 PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], // (174 mm by 235 mm)
108 PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], // (201 mm by 276 mm)
109 PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm)
110 PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm)
111 PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], // (322 mm by 445 mm)
112 ];
113
114 /**
115 * Create a new PDF Writer instance.
116 *
117 * @param Spreadsheet $spreadsheet Spreadsheet object
118 */
119 public function __construct(Spreadsheet $spreadsheet)
120 {
121 parent::__construct($spreadsheet);
122 //$this->setUseInlineCss(true);
123 $this->tempDir = File::sysGetTempDir() . '/phpsppdf';
124 $this->isPdf = true;
125 }
126
127 /**
128 * Get Font.
129 *
130 * @return string
131 */
132 public function getFont()
133 {
134 return $this->font;
135 }
136
137 /**
138 * Set font. Examples:
139 * 'arialunicid0-chinese-simplified'
140 * 'arialunicid0-chinese-traditional'
141 * 'arialunicid0-korean'
142 * 'arialunicid0-japanese'.
143 *
144 * @param string $fontName
145 *
146 * @return $this
147 */
148 public function setFont($fontName)
149 {
150 $this->font = $fontName;
151
152 return $this;
153 }
154
155 /**
156 * Get Paper Size.
157 *
158 * @return ?int
159 */
160 public function getPaperSize()
161 {
162 return $this->paperSize;
163 }
164
165 /**
166 * Set Paper Size.
167 *
168 * @param int $paperSize Paper size see PageSetup::PAPERSIZE_*
169 *
170 * @return self
171 */
172 public function setPaperSize($paperSize)
173 {
174 $this->paperSize = $paperSize;
175
176 return $this;
177 }
178
179 /**
180 * Get Orientation.
181 */
182 public function getOrientation(): ?string
183 {
184 return $this->orientation;
185 }
186
187 /**
188 * Set Orientation.
189 *
190 * @param string $orientation Page orientation see PageSetup::ORIENTATION_*
191 *
192 * @return self
193 */
194 public function setOrientation($orientation)
195 {
196 $this->orientation = $orientation;
197
198 return $this;
199 }
200
201 /**
202 * Get temporary storage directory.
203 *
204 * @return string
205 */
206 public function getTempDir()
207 {
208 return $this->tempDir;
209 }
210
211 /**
212 * Set temporary storage directory.
213 *
214 * @param string $temporaryDirectory Temporary storage directory
215 *
216 * @return self
217 */
218 public function setTempDir($temporaryDirectory)
219 {
220 if (is_dir($temporaryDirectory)) {
221 $this->tempDir = $temporaryDirectory;
222 } else {
223 throw new WriterException("Directory does not exist: $temporaryDirectory");
224 }
225
226 return $this;
227 }
228
229 /**
230 * Save Spreadsheet to PDF file, pre-save.
231 *
232 * @param string $filename Name of the file to save as
233 *
234 * @return resource
235 */
236 protected function prepareForSave($filename)
237 {
238 // Open file
239 $this->openFileHandle($filename);
240
241 return $this->fileHandle;
242 }
243
244 /**
245 * Save PhpSpreadsheet to PDF file, post-save.
246 */
247 protected function restoreStateAfterSave(): void
248 {
249 $this->maybeCloseFileHandle();
250 }
251 }
252