Blame view
dompdf/src/FrameDecorator/ListBullet.php
2.14 KB
670b6d6f8
![]() |
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 |
<?php /** * @package dompdf * @link http://dompdf.github.com/ * @author Benj Carson <benjcarson@digitaljunkies.ca> * @author Helmut Tischer <htischer@weihenstephan.org> * @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 { const BULLET_PADDING = 1; // Distance from bullet to text in pt // As fraction of font size (including descent). See also DECO_THICKNESS. const BULLET_THICKNESS = 0.04; // Thickness of bullet outline. Screen: 0.08, print: better less, e.g. 0.04 const BULLET_DESCENT = 0.3; //descent of font below baseline. Todo: Guessed for now. const BULLET_SIZE = 0.35; // bullet diameter. For now 0.5 of font_size without descent. static $BULLET_TYPES = array("disc", "circle", "square"); //........................................................................ function __construct(Frame $frame, Dompdf $dompdf) { parent::__construct($frame, $dompdf); } function get_margin_width() { $style = $this->_frame->get_style(); // Small hack to prevent extra indenting of list text on list_style_position === "inside" // and on suppressed bullet if ($style->list_style_position === "outside" || $style->list_style_type === "none" ) { return 0; } return $style->get_font_size() * self::BULLET_SIZE + 2 * self::BULLET_PADDING; } //hits only on "inset" lists items, to increase height of box function get_margin_height() { $style = $this->_frame->get_style(); if ($style->list_style_type === "none") { return 0; } return $style->get_font_size() * self::BULLET_SIZE + 2 * self::BULLET_PADDING; } function get_width() { return $this->get_margin_height(); } function get_height() { return $this->get_margin_height(); } //........................................................................ } |