| Server IP : 139.59.63.204 / Your IP : 216.73.217.62 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/billing/vendor/dompdf/dompdf/src/FrameDecorator/ |
Upload File : |
<?php
/**
* @package dompdf
* @link https://github.com/dompdf/dompdf
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace Dompdf\FrameDecorator;
use Dompdf\Dompdf;
use Dompdf\Frame;
/**
* Decorates frames for list bullet rendering
*
* @package dompdf
*/
class ListBullet extends AbstractFrameDecorator
{
/**
* Bullet diameter as fraction of font size.
*/
public const BULLET_SIZE = 0.35;
/**
* Bullet offset from font baseline as fraction of font size.
*/
public const BULLET_OFFSET = 0.1;
/**
* Thickness of bullet outline as fraction of font size.
* See also `DECO_THICKNESS`. Screen: 0.08, print: better less, e.g. 0.04.
*/
public const BULLET_THICKNESS = 0.04;
/**
* Indentation from the start of the line as fraction of font size.
*/
public const MARKER_INDENT = 0.52;
/**
* ListBullet constructor.
* @param Frame $frame
* @param Dompdf $dompdf
*/
function __construct(Frame $frame, Dompdf $dompdf)
{
parent::__construct($frame, $dompdf);
}
/**
* Get the width of the bullet symbol.
*
* @return float
*/
public function get_width(): float
{
$style = $this->_frame->get_style();
if ($style->list_style_type === "none") {
return 0.0;
}
return $style->font_size * self::BULLET_SIZE;
}
/**
* Get the height of the bullet symbol.
*
* @return float
*/
public function get_height(): float
{
$style = $this->_frame->get_style();
if ($style->list_style_type === "none") {
return 0.0;
}
return $style->font_size * self::BULLET_SIZE;
}
/**
* Get the width of the bullet, including indentation.
*/
public function get_margin_width(): float
{
$style = $this->get_style();
if ($style->list_style_type === "none") {
return 0.0;
}
return $style->font_size * (self::BULLET_SIZE + self::MARKER_INDENT);
}
/**
* Get the line height for the bullet.
*
* This increases the height of the corresponding line box when necessary.
*/
public function get_margin_height(): float
{
$style = $this->get_style();
if ($style->list_style_type === "none") {
return 0.0;
}
// TODO: This is a copy of `FrameDecorator\Text::get_margin_height()`
// Would be nice to properly refactor that at some point
$font = $style->font_family;
$size = $style->font_size;
$fontHeight = $this->_dompdf->getFontMetrics()->getFontHeight($font, $size);
return ($style->line_height / ($size > 0 ? $size : 1)) * $fontHeight;
}
}