Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Image
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
1 / 1
 write
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
1 / 1
3
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\RTF\Element;
20
21use PhpOffice\PhpWord\Element\Image as ImageElement;
22use PhpOffice\PhpWord\Shared\Converter;
23
24/**
25 * Image element RTF writer.
26 *
27 * @since 0.11.0
28 */
29class Image extends AbstractElement
30{
31    /**
32     * Write element.
33     *
34     * @return string
35     */
36    public function write()
37    {
38        $element = $this->element;
39        if (!$element instanceof ImageElement) {
40            return '';
41        }
42
43        $this->getStyles();
44        $style = $this->element->getStyle();
45
46        $content = '';
47        $content .= $this->writeOpening();
48        $content .= '{\*\shppict {\pict';
49        $content .= '\pngblip\picscalex100\picscaley100';
50        $content .= '\picwgoal' . round(Converter::pixelToTwip($style->getWidth()));
51        $content .= '\pichgoal' . round(Converter::pixelToTwip($style->getHeight()));
52        $content .= PHP_EOL;
53        $imageData = $element->getImageStringForRendering();
54        $content .= $imageData === null ? '' : bin2hex($imageData);
55        $content .= '}}';
56        $content .= $this->writeClosing();
57
58        return $content;
59    }
60}