/var/www/hkosl.com/littleark/webadmin/libraies/dompdf/dompdf/src/FrameDecorator/Image.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
 * @package dompdf
 * @link    http://dompdf.github.com/
 * @author  Benj Carson <benjcarson@digitaljunkies.ca>
 * @author  Fabien Ménager <fabien.menager@gmail.com>
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 */
namespace Dompdf\FrameDecorator;

use 
Dompdf\Dompdf;
use 
Dompdf\Frame;
use 
Dompdf\FontMetrics;
use 
Dompdf\Image\Cache;

/**
 * Decorates frames for image layout and rendering
 *
 * @package dompdf
 */
class Image extends AbstractFrameDecorator
{

    
/**
     * The path to the image file (note that remote images are
     * downloaded locally to Options:tempDir).
     *
     * @var string
     */
    
protected $_image_url;

    
/**
     * The image's file error message
     *
     * @var string
     */
    
protected $_image_msg;

    
/**
     * Class constructor
     *
     * @param Frame $frame the frame to decorate
     * @param DOMPDF $dompdf the document's dompdf object (required to resolve relative & remote urls)
     */
    
function __construct(Frame $frameDompdf $dompdf)
    {
        
parent::__construct($frame$dompdf);
        
$url $frame->get_node()->getAttribute("src");

        
$debug_png $dompdf->get_option("debug_png");
        if (
$debug_png) print '[__construct ' $url ']';

        list(
$this->_image_url/*$type*/$this->_image_msg) = Cache::resolve_url(
            
$url,
            
$dompdf->get_protocol(),
            
$dompdf->get_host(),
            
$dompdf->get_base_path(),
            
$dompdf
        
);

        if (
Cache::is_broken($this->_image_url) &&
            
$alt $frame->get_node()->getAttribute("alt")
        ) {
            
$style $frame->get_style();
            
$style->width = (3) * $dompdf->getFontMetrics()->getTextWidth($alt$style->font_family$style->font_size$style->word_spacing);
            
$style->height $dompdf->getFontMetrics()->getFontHeight($style->font_family$style->font_size);
        }
    }

    
/**
     * Return the image's url
     *
     * @return string The url of this image
     */
    
function get_image_url()
    {
        return 
$this->_image_url;
    }

    
/**
     * Return the image's error message
     *
     * @return string The image's error message
     */
    
function get_image_msg()
    {
        return 
$this->_image_msg;
    }

}