source: trunk/client/inc/hpdf5/spipu/html2pdf/src/Tag/AbstractSvgTag.php@ 347

Last change on this file since 347 was 347, checked in by roby, 3 years ago

Aggiornamento per compatibilità con php7.4

File size: 2.0 KB
Line 
1<?php
2/**
3 * Html2Pdf Library - Tag class
4 *
5 * HTML => PDF converter
6 * distributed under the OSL-3.0 License
7 *
8 * @package Html2pdf
9 * @author Laurent MINGUET <webmaster@html2pdf.fr>
10 * @copyright 2017 Laurent MINGUET
11 */
12namespace Spipu\Html2Pdf\Tag;
13
14use Spipu\Html2Pdf\Exception\HtmlParsingException;
15use Spipu\Html2Pdf\SvgDrawer;
16
17/**
18 * Abstract Default Tag
19 * used by all the svg tags
20 */
21abstract class AbstractSvgTag extends AbstractTag
22{
23 /**
24 * @var SvgDrawer
25 */
26 protected $svgDrawer;
27
28 /**
29 * AbstractSvgTag constructor.
30 *
31 * @param SvgDrawer $svgDrawer
32 */
33 public function __construct(SvgDrawer $svgDrawer)
34 {
35 parent::__construct();
36
37 $this->svgDrawer = $svgDrawer;
38 }
39
40 /**
41 * @inheritdoc
42 */
43 public function open($properties)
44 {
45 $this->openSvg($properties);
46 $this->drawSvg($properties);
47 $this->closeSvg();
48 return true;
49 }
50
51 /**
52 * @inheritdoc
53 */
54 public function close($properties)
55 {
56 return true;
57 }
58
59 /**
60 * Open the SVG tag
61 *
62 * @param array $properties
63 * @throws HtmlParsingException
64 */
65 protected function openSvg($properties)
66 {
67 if (!$this->svgDrawer->isDrawing()) {
68 $e = new HtmlParsingException('The asked ['.$this->getName().'] tag is not in a [DRAW] tag');
69 $e->setInvalidTag($this->getName());
70 throw $e;
71 }
72
73 $transform = null;
74 if (array_key_exists('transform', $properties)) {
75 $transform = $this->svgDrawer->prepareTransform($properties['transform']);
76 }
77
78 $this->pdf->doTransform($transform);
79 $this->parsingCss->save();
80 }
81
82 /**
83 * Close the SVG tag
84 */
85 protected function closeSvg()
86 {
87 $this->pdf->undoTransform();
88
89 $this->parsingCss->load();
90 }
91
92 /**
93 * Draw the SVG tag
94 *
95 * @param array $properties
96 *
97 * @return void
98 */
99 abstract protected function drawSvg($properties);
100}
Note: See TracBrowser for help on using the repository browser.