ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Theme.php
Go to the documentation of this file.
1 <?php
2 
4 
7 
8 class Theme extends WriterPart
9 {
15  private static $majorFonts = [
16  'Jpan' => 'MS Pゴシック',
17  'Hang' => '맑은 고딕',
18  'Hans' => '宋体',
19  'Hant' => '新細明體',
20  'Arab' => 'Times New Roman',
21  'Hebr' => 'Times New Roman',
22  'Thai' => 'Tahoma',
23  'Ethi' => 'Nyala',
24  'Beng' => 'Vrinda',
25  'Gujr' => 'Shruti',
26  'Khmr' => 'MoolBoran',
27  'Knda' => 'Tunga',
28  'Guru' => 'Raavi',
29  'Cans' => 'Euphemia',
30  'Cher' => 'Plantagenet Cherokee',
31  'Yiii' => 'Microsoft Yi Baiti',
32  'Tibt' => 'Microsoft Himalaya',
33  'Thaa' => 'MV Boli',
34  'Deva' => 'Mangal',
35  'Telu' => 'Gautami',
36  'Taml' => 'Latha',
37  'Syrc' => 'Estrangelo Edessa',
38  'Orya' => 'Kalinga',
39  'Mlym' => 'Kartika',
40  'Laoo' => 'DokChampa',
41  'Sinh' => 'Iskoola Pota',
42  'Mong' => 'Mongolian Baiti',
43  'Viet' => 'Times New Roman',
44  'Uigh' => 'Microsoft Uighur',
45  'Geor' => 'Sylfaen',
46  ];
47 
53  private static $minorFonts = [
54  'Jpan' => 'MS Pゴシック',
55  'Hang' => '맑은 고딕',
56  'Hans' => '宋体',
57  'Hant' => '新細明體',
58  'Arab' => 'Arial',
59  'Hebr' => 'Arial',
60  'Thai' => 'Tahoma',
61  'Ethi' => 'Nyala',
62  'Beng' => 'Vrinda',
63  'Gujr' => 'Shruti',
64  'Khmr' => 'DaunPenh',
65  'Knda' => 'Tunga',
66  'Guru' => 'Raavi',
67  'Cans' => 'Euphemia',
68  'Cher' => 'Plantagenet Cherokee',
69  'Yiii' => 'Microsoft Yi Baiti',
70  'Tibt' => 'Microsoft Himalaya',
71  'Thaa' => 'MV Boli',
72  'Deva' => 'Mangal',
73  'Telu' => 'Gautami',
74  'Taml' => 'Latha',
75  'Syrc' => 'Estrangelo Edessa',
76  'Orya' => 'Kalinga',
77  'Mlym' => 'Kartika',
78  'Laoo' => 'DokChampa',
79  'Sinh' => 'Iskoola Pota',
80  'Mong' => 'Mongolian Baiti',
81  'Viet' => 'Arial',
82  'Uigh' => 'Microsoft Uighur',
83  'Geor' => 'Sylfaen',
84  ];
85 
91  private static $colourScheme = [
92  'dk2' => '1F497D',
93  'lt2' => 'EEECE1',
94  'accent1' => '4F81BD',
95  'accent2' => 'C0504D',
96  'accent3' => '9BBB59',
97  'accent4' => '8064A2',
98  'accent5' => '4BACC6',
99  'accent6' => 'F79646',
100  'hlink' => '0000FF',
101  'folHlink' => '800080',
102  ];
103 
109  public function writeTheme(Spreadsheet $spreadsheet)
110  {
111  // Create XML writer
112  $objWriter = null;
113  if ($this->getParentWriter()->getUseDiskCaching()) {
114  $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
115  } else {
116  $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
117  }
118 
119  // XML header
120  $objWriter->startDocument('1.0', 'UTF-8', 'yes');
121 
122  // a:theme
123  $objWriter->startElement('a:theme');
124  $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
125  $objWriter->writeAttribute('name', 'Office Theme');
126 
127  // a:themeElements
128  $objWriter->startElement('a:themeElements');
129 
130  // a:clrScheme
131  $objWriter->startElement('a:clrScheme');
132  $objWriter->writeAttribute('name', 'Office');
133 
134  // a:dk1
135  $objWriter->startElement('a:dk1');
136 
137  // a:sysClr
138  $objWriter->startElement('a:sysClr');
139  $objWriter->writeAttribute('val', 'windowText');
140  $objWriter->writeAttribute('lastClr', '000000');
141  $objWriter->endElement();
142 
143  $objWriter->endElement();
144 
145  // a:lt1
146  $objWriter->startElement('a:lt1');
147 
148  // a:sysClr
149  $objWriter->startElement('a:sysClr');
150  $objWriter->writeAttribute('val', 'window');
151  $objWriter->writeAttribute('lastClr', 'FFFFFF');
152  $objWriter->endElement();
153 
154  $objWriter->endElement();
155 
156  // a:dk2
157  $this->writeColourScheme($objWriter);
158 
159  $objWriter->endElement();
160 
161  // a:fontScheme
162  $objWriter->startElement('a:fontScheme');
163  $objWriter->writeAttribute('name', 'Office');
164 
165  // a:majorFont
166  $objWriter->startElement('a:majorFont');
167  $this->writeFonts($objWriter, 'Cambria', self::$majorFonts);
168  $objWriter->endElement();
169 
170  // a:minorFont
171  $objWriter->startElement('a:minorFont');
172  $this->writeFonts($objWriter, 'Calibri', self::$minorFonts);
173  $objWriter->endElement();
174 
175  $objWriter->endElement();
176 
177  // a:fmtScheme
178  $objWriter->startElement('a:fmtScheme');
179  $objWriter->writeAttribute('name', 'Office');
180 
181  // a:fillStyleLst
182  $objWriter->startElement('a:fillStyleLst');
183 
184  // a:solidFill
185  $objWriter->startElement('a:solidFill');
186 
187  // a:schemeClr
188  $objWriter->startElement('a:schemeClr');
189  $objWriter->writeAttribute('val', 'phClr');
190  $objWriter->endElement();
191 
192  $objWriter->endElement();
193 
194  // a:gradFill
195  $objWriter->startElement('a:gradFill');
196  $objWriter->writeAttribute('rotWithShape', '1');
197 
198  // a:gsLst
199  $objWriter->startElement('a:gsLst');
200 
201  // a:gs
202  $objWriter->startElement('a:gs');
203  $objWriter->writeAttribute('pos', '0');
204 
205  // a:schemeClr
206  $objWriter->startElement('a:schemeClr');
207  $objWriter->writeAttribute('val', 'phClr');
208 
209  // a:tint
210  $objWriter->startElement('a:tint');
211  $objWriter->writeAttribute('val', '50000');
212  $objWriter->endElement();
213 
214  // a:satMod
215  $objWriter->startElement('a:satMod');
216  $objWriter->writeAttribute('val', '300000');
217  $objWriter->endElement();
218 
219  $objWriter->endElement();
220 
221  $objWriter->endElement();
222 
223  // a:gs
224  $objWriter->startElement('a:gs');
225  $objWriter->writeAttribute('pos', '35000');
226 
227  // a:schemeClr
228  $objWriter->startElement('a:schemeClr');
229  $objWriter->writeAttribute('val', 'phClr');
230 
231  // a:tint
232  $objWriter->startElement('a:tint');
233  $objWriter->writeAttribute('val', '37000');
234  $objWriter->endElement();
235 
236  // a:satMod
237  $objWriter->startElement('a:satMod');
238  $objWriter->writeAttribute('val', '300000');
239  $objWriter->endElement();
240 
241  $objWriter->endElement();
242 
243  $objWriter->endElement();
244 
245  // a:gs
246  $objWriter->startElement('a:gs');
247  $objWriter->writeAttribute('pos', '100000');
248 
249  // a:schemeClr
250  $objWriter->startElement('a:schemeClr');
251  $objWriter->writeAttribute('val', 'phClr');
252 
253  // a:tint
254  $objWriter->startElement('a:tint');
255  $objWriter->writeAttribute('val', '15000');
256  $objWriter->endElement();
257 
258  // a:satMod
259  $objWriter->startElement('a:satMod');
260  $objWriter->writeAttribute('val', '350000');
261  $objWriter->endElement();
262 
263  $objWriter->endElement();
264 
265  $objWriter->endElement();
266 
267  $objWriter->endElement();
268 
269  // a:lin
270  $objWriter->startElement('a:lin');
271  $objWriter->writeAttribute('ang', '16200000');
272  $objWriter->writeAttribute('scaled', '1');
273  $objWriter->endElement();
274 
275  $objWriter->endElement();
276 
277  // a:gradFill
278  $objWriter->startElement('a:gradFill');
279  $objWriter->writeAttribute('rotWithShape', '1');
280 
281  // a:gsLst
282  $objWriter->startElement('a:gsLst');
283 
284  // a:gs
285  $objWriter->startElement('a:gs');
286  $objWriter->writeAttribute('pos', '0');
287 
288  // a:schemeClr
289  $objWriter->startElement('a:schemeClr');
290  $objWriter->writeAttribute('val', 'phClr');
291 
292  // a:shade
293  $objWriter->startElement('a:shade');
294  $objWriter->writeAttribute('val', '51000');
295  $objWriter->endElement();
296 
297  // a:satMod
298  $objWriter->startElement('a:satMod');
299  $objWriter->writeAttribute('val', '130000');
300  $objWriter->endElement();
301 
302  $objWriter->endElement();
303 
304  $objWriter->endElement();
305 
306  // a:gs
307  $objWriter->startElement('a:gs');
308  $objWriter->writeAttribute('pos', '80000');
309 
310  // a:schemeClr
311  $objWriter->startElement('a:schemeClr');
312  $objWriter->writeAttribute('val', 'phClr');
313 
314  // a:shade
315  $objWriter->startElement('a:shade');
316  $objWriter->writeAttribute('val', '93000');
317  $objWriter->endElement();
318 
319  // a:satMod
320  $objWriter->startElement('a:satMod');
321  $objWriter->writeAttribute('val', '130000');
322  $objWriter->endElement();
323 
324  $objWriter->endElement();
325 
326  $objWriter->endElement();
327 
328  // a:gs
329  $objWriter->startElement('a:gs');
330  $objWriter->writeAttribute('pos', '100000');
331 
332  // a:schemeClr
333  $objWriter->startElement('a:schemeClr');
334  $objWriter->writeAttribute('val', 'phClr');
335 
336  // a:shade
337  $objWriter->startElement('a:shade');
338  $objWriter->writeAttribute('val', '94000');
339  $objWriter->endElement();
340 
341  // a:satMod
342  $objWriter->startElement('a:satMod');
343  $objWriter->writeAttribute('val', '135000');
344  $objWriter->endElement();
345 
346  $objWriter->endElement();
347 
348  $objWriter->endElement();
349 
350  $objWriter->endElement();
351 
352  // a:lin
353  $objWriter->startElement('a:lin');
354  $objWriter->writeAttribute('ang', '16200000');
355  $objWriter->writeAttribute('scaled', '0');
356  $objWriter->endElement();
357 
358  $objWriter->endElement();
359 
360  $objWriter->endElement();
361 
362  // a:lnStyleLst
363  $objWriter->startElement('a:lnStyleLst');
364 
365  // a:ln
366  $objWriter->startElement('a:ln');
367  $objWriter->writeAttribute('w', '9525');
368  $objWriter->writeAttribute('cap', 'flat');
369  $objWriter->writeAttribute('cmpd', 'sng');
370  $objWriter->writeAttribute('algn', 'ctr');
371 
372  // a:solidFill
373  $objWriter->startElement('a:solidFill');
374 
375  // a:schemeClr
376  $objWriter->startElement('a:schemeClr');
377  $objWriter->writeAttribute('val', 'phClr');
378 
379  // a:shade
380  $objWriter->startElement('a:shade');
381  $objWriter->writeAttribute('val', '95000');
382  $objWriter->endElement();
383 
384  // a:satMod
385  $objWriter->startElement('a:satMod');
386  $objWriter->writeAttribute('val', '105000');
387  $objWriter->endElement();
388 
389  $objWriter->endElement();
390 
391  $objWriter->endElement();
392 
393  // a:prstDash
394  $objWriter->startElement('a:prstDash');
395  $objWriter->writeAttribute('val', 'solid');
396  $objWriter->endElement();
397 
398  $objWriter->endElement();
399 
400  // a:ln
401  $objWriter->startElement('a:ln');
402  $objWriter->writeAttribute('w', '25400');
403  $objWriter->writeAttribute('cap', 'flat');
404  $objWriter->writeAttribute('cmpd', 'sng');
405  $objWriter->writeAttribute('algn', 'ctr');
406 
407  // a:solidFill
408  $objWriter->startElement('a:solidFill');
409 
410  // a:schemeClr
411  $objWriter->startElement('a:schemeClr');
412  $objWriter->writeAttribute('val', 'phClr');
413  $objWriter->endElement();
414 
415  $objWriter->endElement();
416 
417  // a:prstDash
418  $objWriter->startElement('a:prstDash');
419  $objWriter->writeAttribute('val', 'solid');
420  $objWriter->endElement();
421 
422  $objWriter->endElement();
423 
424  // a:ln
425  $objWriter->startElement('a:ln');
426  $objWriter->writeAttribute('w', '38100');
427  $objWriter->writeAttribute('cap', 'flat');
428  $objWriter->writeAttribute('cmpd', 'sng');
429  $objWriter->writeAttribute('algn', 'ctr');
430 
431  // a:solidFill
432  $objWriter->startElement('a:solidFill');
433 
434  // a:schemeClr
435  $objWriter->startElement('a:schemeClr');
436  $objWriter->writeAttribute('val', 'phClr');
437  $objWriter->endElement();
438 
439  $objWriter->endElement();
440 
441  // a:prstDash
442  $objWriter->startElement('a:prstDash');
443  $objWriter->writeAttribute('val', 'solid');
444  $objWriter->endElement();
445 
446  $objWriter->endElement();
447 
448  $objWriter->endElement();
449 
450  // a:effectStyleLst
451  $objWriter->startElement('a:effectStyleLst');
452 
453  // a:effectStyle
454  $objWriter->startElement('a:effectStyle');
455 
456  // a:effectLst
457  $objWriter->startElement('a:effectLst');
458 
459  // a:outerShdw
460  $objWriter->startElement('a:outerShdw');
461  $objWriter->writeAttribute('blurRad', '40000');
462  $objWriter->writeAttribute('dist', '20000');
463  $objWriter->writeAttribute('dir', '5400000');
464  $objWriter->writeAttribute('rotWithShape', '0');
465 
466  // a:srgbClr
467  $objWriter->startElement('a:srgbClr');
468  $objWriter->writeAttribute('val', '000000');
469 
470  // a:alpha
471  $objWriter->startElement('a:alpha');
472  $objWriter->writeAttribute('val', '38000');
473  $objWriter->endElement();
474 
475  $objWriter->endElement();
476 
477  $objWriter->endElement();
478 
479  $objWriter->endElement();
480 
481  $objWriter->endElement();
482 
483  // a:effectStyle
484  $objWriter->startElement('a:effectStyle');
485 
486  // a:effectLst
487  $objWriter->startElement('a:effectLst');
488 
489  // a:outerShdw
490  $objWriter->startElement('a:outerShdw');
491  $objWriter->writeAttribute('blurRad', '40000');
492  $objWriter->writeAttribute('dist', '23000');
493  $objWriter->writeAttribute('dir', '5400000');
494  $objWriter->writeAttribute('rotWithShape', '0');
495 
496  // a:srgbClr
497  $objWriter->startElement('a:srgbClr');
498  $objWriter->writeAttribute('val', '000000');
499 
500  // a:alpha
501  $objWriter->startElement('a:alpha');
502  $objWriter->writeAttribute('val', '35000');
503  $objWriter->endElement();
504 
505  $objWriter->endElement();
506 
507  $objWriter->endElement();
508 
509  $objWriter->endElement();
510 
511  $objWriter->endElement();
512 
513  // a:effectStyle
514  $objWriter->startElement('a:effectStyle');
515 
516  // a:effectLst
517  $objWriter->startElement('a:effectLst');
518 
519  // a:outerShdw
520  $objWriter->startElement('a:outerShdw');
521  $objWriter->writeAttribute('blurRad', '40000');
522  $objWriter->writeAttribute('dist', '23000');
523  $objWriter->writeAttribute('dir', '5400000');
524  $objWriter->writeAttribute('rotWithShape', '0');
525 
526  // a:srgbClr
527  $objWriter->startElement('a:srgbClr');
528  $objWriter->writeAttribute('val', '000000');
529 
530  // a:alpha
531  $objWriter->startElement('a:alpha');
532  $objWriter->writeAttribute('val', '35000');
533  $objWriter->endElement();
534 
535  $objWriter->endElement();
536 
537  $objWriter->endElement();
538 
539  $objWriter->endElement();
540 
541  // a:scene3d
542  $objWriter->startElement('a:scene3d');
543 
544  // a:camera
545  $objWriter->startElement('a:camera');
546  $objWriter->writeAttribute('prst', 'orthographicFront');
547 
548  // a:rot
549  $objWriter->startElement('a:rot');
550  $objWriter->writeAttribute('lat', '0');
551  $objWriter->writeAttribute('lon', '0');
552  $objWriter->writeAttribute('rev', '0');
553  $objWriter->endElement();
554 
555  $objWriter->endElement();
556 
557  // a:lightRig
558  $objWriter->startElement('a:lightRig');
559  $objWriter->writeAttribute('rig', 'threePt');
560  $objWriter->writeAttribute('dir', 't');
561 
562  // a:rot
563  $objWriter->startElement('a:rot');
564  $objWriter->writeAttribute('lat', '0');
565  $objWriter->writeAttribute('lon', '0');
566  $objWriter->writeAttribute('rev', '1200000');
567  $objWriter->endElement();
568 
569  $objWriter->endElement();
570 
571  $objWriter->endElement();
572 
573  // a:sp3d
574  $objWriter->startElement('a:sp3d');
575 
576  // a:bevelT
577  $objWriter->startElement('a:bevelT');
578  $objWriter->writeAttribute('w', '63500');
579  $objWriter->writeAttribute('h', '25400');
580  $objWriter->endElement();
581 
582  $objWriter->endElement();
583 
584  $objWriter->endElement();
585 
586  $objWriter->endElement();
587 
588  // a:bgFillStyleLst
589  $objWriter->startElement('a:bgFillStyleLst');
590 
591  // a:solidFill
592  $objWriter->startElement('a:solidFill');
593 
594  // a:schemeClr
595  $objWriter->startElement('a:schemeClr');
596  $objWriter->writeAttribute('val', 'phClr');
597  $objWriter->endElement();
598 
599  $objWriter->endElement();
600 
601  // a:gradFill
602  $objWriter->startElement('a:gradFill');
603  $objWriter->writeAttribute('rotWithShape', '1');
604 
605  // a:gsLst
606  $objWriter->startElement('a:gsLst');
607 
608  // a:gs
609  $objWriter->startElement('a:gs');
610  $objWriter->writeAttribute('pos', '0');
611 
612  // a:schemeClr
613  $objWriter->startElement('a:schemeClr');
614  $objWriter->writeAttribute('val', 'phClr');
615 
616  // a:tint
617  $objWriter->startElement('a:tint');
618  $objWriter->writeAttribute('val', '40000');
619  $objWriter->endElement();
620 
621  // a:satMod
622  $objWriter->startElement('a:satMod');
623  $objWriter->writeAttribute('val', '350000');
624  $objWriter->endElement();
625 
626  $objWriter->endElement();
627 
628  $objWriter->endElement();
629 
630  // a:gs
631  $objWriter->startElement('a:gs');
632  $objWriter->writeAttribute('pos', '40000');
633 
634  // a:schemeClr
635  $objWriter->startElement('a:schemeClr');
636  $objWriter->writeAttribute('val', 'phClr');
637 
638  // a:tint
639  $objWriter->startElement('a:tint');
640  $objWriter->writeAttribute('val', '45000');
641  $objWriter->endElement();
642 
643  // a:shade
644  $objWriter->startElement('a:shade');
645  $objWriter->writeAttribute('val', '99000');
646  $objWriter->endElement();
647 
648  // a:satMod
649  $objWriter->startElement('a:satMod');
650  $objWriter->writeAttribute('val', '350000');
651  $objWriter->endElement();
652 
653  $objWriter->endElement();
654 
655  $objWriter->endElement();
656 
657  // a:gs
658  $objWriter->startElement('a:gs');
659  $objWriter->writeAttribute('pos', '100000');
660 
661  // a:schemeClr
662  $objWriter->startElement('a:schemeClr');
663  $objWriter->writeAttribute('val', 'phClr');
664 
665  // a:shade
666  $objWriter->startElement('a:shade');
667  $objWriter->writeAttribute('val', '20000');
668  $objWriter->endElement();
669 
670  // a:satMod
671  $objWriter->startElement('a:satMod');
672  $objWriter->writeAttribute('val', '255000');
673  $objWriter->endElement();
674 
675  $objWriter->endElement();
676 
677  $objWriter->endElement();
678 
679  $objWriter->endElement();
680 
681  // a:path
682  $objWriter->startElement('a:path');
683  $objWriter->writeAttribute('path', 'circle');
684 
685  // a:fillToRect
686  $objWriter->startElement('a:fillToRect');
687  $objWriter->writeAttribute('l', '50000');
688  $objWriter->writeAttribute('t', '-80000');
689  $objWriter->writeAttribute('r', '50000');
690  $objWriter->writeAttribute('b', '180000');
691  $objWriter->endElement();
692 
693  $objWriter->endElement();
694 
695  $objWriter->endElement();
696 
697  // a:gradFill
698  $objWriter->startElement('a:gradFill');
699  $objWriter->writeAttribute('rotWithShape', '1');
700 
701  // a:gsLst
702  $objWriter->startElement('a:gsLst');
703 
704  // a:gs
705  $objWriter->startElement('a:gs');
706  $objWriter->writeAttribute('pos', '0');
707 
708  // a:schemeClr
709  $objWriter->startElement('a:schemeClr');
710  $objWriter->writeAttribute('val', 'phClr');
711 
712  // a:tint
713  $objWriter->startElement('a:tint');
714  $objWriter->writeAttribute('val', '80000');
715  $objWriter->endElement();
716 
717  // a:satMod
718  $objWriter->startElement('a:satMod');
719  $objWriter->writeAttribute('val', '300000');
720  $objWriter->endElement();
721 
722  $objWriter->endElement();
723 
724  $objWriter->endElement();
725 
726  // a:gs
727  $objWriter->startElement('a:gs');
728  $objWriter->writeAttribute('pos', '100000');
729 
730  // a:schemeClr
731  $objWriter->startElement('a:schemeClr');
732  $objWriter->writeAttribute('val', 'phClr');
733 
734  // a:shade
735  $objWriter->startElement('a:shade');
736  $objWriter->writeAttribute('val', '30000');
737  $objWriter->endElement();
738 
739  // a:satMod
740  $objWriter->startElement('a:satMod');
741  $objWriter->writeAttribute('val', '200000');
742  $objWriter->endElement();
743 
744  $objWriter->endElement();
745 
746  $objWriter->endElement();
747 
748  $objWriter->endElement();
749 
750  // a:path
751  $objWriter->startElement('a:path');
752  $objWriter->writeAttribute('path', 'circle');
753 
754  // a:fillToRect
755  $objWriter->startElement('a:fillToRect');
756  $objWriter->writeAttribute('l', '50000');
757  $objWriter->writeAttribute('t', '50000');
758  $objWriter->writeAttribute('r', '50000');
759  $objWriter->writeAttribute('b', '50000');
760  $objWriter->endElement();
761 
762  $objWriter->endElement();
763 
764  $objWriter->endElement();
765 
766  $objWriter->endElement();
767 
768  $objWriter->endElement();
769 
770  $objWriter->endElement();
771 
772  // a:objectDefaults
773  $objWriter->writeElement('a:objectDefaults', null);
774 
775  // a:extraClrSchemeLst
776  $objWriter->writeElement('a:extraClrSchemeLst', null);
777 
778  $objWriter->endElement();
779 
780  // Return
781  return $objWriter->getData();
782  }
783 
789  private function writeFonts(XMLWriter $objWriter, string $latinFont, array $fontSet): void
790  {
791  // a:latin
792  $objWriter->startElement('a:latin');
793  $objWriter->writeAttribute('typeface', $latinFont);
794  $objWriter->endElement();
795 
796  // a:ea
797  $objWriter->startElement('a:ea');
798  $objWriter->writeAttribute('typeface', '');
799  $objWriter->endElement();
800 
801  // a:cs
802  $objWriter->startElement('a:cs');
803  $objWriter->writeAttribute('typeface', '');
804  $objWriter->endElement();
805 
806  foreach ($fontSet as $fontScript => $typeface) {
807  $objWriter->startElement('a:font');
808  $objWriter->writeAttribute('script', $fontScript);
809  $objWriter->writeAttribute('typeface', $typeface);
810  $objWriter->endElement();
811  }
812  }
813 
817  private function writeColourScheme(XMLWriter $objWriter): void
818  {
819  foreach (self::$colourScheme as $colourName => $colourValue) {
820  $objWriter->startElement('a:' . $colourName);
821 
822  $objWriter->startElement('a:srgbClr');
823  $objWriter->writeAttribute('val', $colourValue);
824  $objWriter->endElement();
825 
826  $objWriter->endElement();
827  }
828  }
829 }
getDiskCachingDirectory()
Get disk caching directory.
Definition: BaseWriter.php:92
writeColourScheme(XMLWriter $objWriter)
Write colour scheme to XML format.
Definition: Theme.php:817
writeFonts(XMLWriter $objWriter, string $latinFont, array $fontSet)
Write fonts to XML format.
Definition: Theme.php:789
static writeTheme(Spreadsheet $spreadsheet)
Write theme to XML format.
Definition: Theme.php:109
getUseDiskCaching()
Get use disk caching where possible?
Definition: BaseWriter.php:72