Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.12% covered (success)
94.12%
16 / 17
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Image
94.12% covered (success)
94.12%
16 / 17
0.00% covered (danger)
0.00%
0 / 1
4.00
0.00% covered (danger)
0.00%
0 / 1
 write
94.12% covered (success)
94.12%
16 / 17
0.00% covered (danger)
0.00%
0 / 1
4.00
1<?php
2
3/**
4 * This file is part of PHPWord - A pure PHP library for reading and writing
5 * word processing documents.
6 *
7 * PHPWord is free software distributed under the terms of the GNU Lesser
8 * General Public License version 3 as published by the Free Software Foundation.
9 *
10 * For the full copyright and license information, please read the LICENSE
11 * file that was distributed with this source code. For the full list of
12 * contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
13 *
14 * @see         https://github.com/PHPOffice/PHPWord
15 *
16 * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3
17 */
18
19namespace PhpOffice\PhpWord\Writer\HTML\Element;
20
21use PhpOffice\PhpWord\Element\Image as ImageElement;
22use PhpOffice\PhpWord\Writer\HTML\Style\Image as ImageStyleWriter;
23
24/**
25 * Image element HTML writer.
26 *
27 * @since 0.10.0
28 */
29class Image extends Text
30{
31    /**
32     * Write image.
33     *
34     * @return string
35     */
36    public function write()
37    {
38        if (!$this->element instanceof ImageElement) {
39            return '';
40        }
41        $content = '';
42        $imageData = $this->element->getImageStringForRendering();
43        if ($imageData !== null) {
44            $imageData = base64_encode($imageData);
45            $styleWriter = new ImageStyleWriter($this->element->getStyle());
46            $style = $styleWriter->write();
47            $imageData = 'data:' . $this->element->getImageTypeForRendering() . ';base64,' . $imageData;
48
49            $altText = $this->element->getAltText();
50            $altAttribute = '';
51            if ($altText) {
52                $altAttribute = " alt=\"{$altText}\"";
53            }
54
55            $content .= $this->writeOpening();
56            $content .= "<img border=\"0\" style=\"{$style}\" src=\"{$imageData}\"{$altAttribute}/>";
57            $content .= $this->writeClosing();
58        }
59
60        return $content;
61    }
62}