function GenericBox() { $this->_left = 0; $this->_top = 0; $this->baseline = 0; $this->default_baseline = 0; // Generic CSS properties // Save CSS property values $base_font_size = get_base_font_size(); // 'color' $handler = get_css_handler('color'); $this->color = $handler->get(); // 'font-size' $this->font_size = units2pt(get_font_size(), $base_font_size); // 'font-family' $this->family = get_font_family(); // 'font-weight' $this->weight = get_font_weight(); // 'font-style' $this->style = get_font_style(); // 'text-decoration' $handler = get_css_handler('text-decoration'); $this->decoration = $handler->get(); }
function GenericFormattedBox() { $this->GenericBox(); $base_font_size = get_base_font_size(); // 'background' $handler = get_css_handler('background'); $this->background = $handler->get(); $this->background = $this->background->copy(); $this->background->units2pt($base_font_size); // 'border' $this->border = new BorderPDF(get_border()); // '-cellpadding' $handler = get_css_handler('-cellpadding'); $this->cellpadding = units2pt($handler->get(), $base_font_size); // '-cellspacing' $handler = get_css_handler('-cellspacing'); $this->cellspacing = units2pt($handler->get(), $base_font_size); // 'clear' $handler = get_css_handler('clear'); $this->clear = $handler->get(); // 'content' $handler = get_css_handler('content'); $this->content_pseudoelement = $handler->get(); // 'display' $handler = get_css_handler('display'); $this->display = $handler->get(); // 'float' $handler = get_css_handler('float'); $this->float = $handler->get(); // 'height' $this->_height_constraint = HCConstraint::create($this); $this->_height_constraint->units2pt($base_font_size); // $this->height = $this->_height_constraint->apply(0, $this); $this->height = 0; // 'line-height' $this->line_height = get_line_height(); $this->line_height = $this->line_height->copy(); $this->line_height->units2pt($base_font_size); // 'list-style' $handler = get_css_handler('list-style'); $this->list_style = $handler->get(); $this->list_style = $this->list_style->copy(); // 'margin' $handler = get_css_handler('margin'); $this->margin = $handler->get(); $this->margin = $this->margin->copy(); $this->margin->units2pt($base_font_size); // 'overflow' $handler = get_css_handler('overflow'); $this->overflow = $handler->get(); // 'padding' $handler = get_css_handler('padding'); $this->padding = $handler->get(); $this->padding = $this->padding->copy(); $this->padding->units2pt($base_font_size); // 'page-break-after' $handler = get_css_handler('page-break-after'); $this->page_break_after = $handler->get(); // 'position' $handler = get_css_handler('position'); $this->position = $handler->get(); // 'text-align' $handler = get_css_handler('text-align'); $this->text_align = $handler->get(); // 'text-indent' $handler = get_css_handler('text-indent'); $this->text_indent = $handler->get(); $this->text_indent = $this->text_indent->copy(); $this->text_indent->units2pt($base_font_size); // 'vertical-align' $handler = get_css_handler('vertical-align'); $this->vertical_align = $handler->get(); // 'visibility' $handler = get_css_handler('visibility'); $this->visibility = $handler->get(); // 'width' $handler = get_css_handler('width'); $this->_width_constraint = $handler->get(); $this->_width_constraint = $this->_width_constraint->copy(); $this->_width_constraint->units2pt($base_font_size); $this->width = $this->_width_constraint->apply(0, 0); // 'white-space' $handler = get_css_handler('white-space'); $this->white_space = $handler->get(); // CSS positioning properties // 'left' $handler = get_css_handler('left'); $value = $handler->get(); $this->left = $value; // 'top' $handler = get_css_handler('top'); $this->top = $handler->get(); // 'bottom' // TODO: automatic height calculation $handler = get_css_handler('bottom'); $this->bottom = $handler->get(); if (!is_null($this->bottom)) { $this->bottom = units2pt($this->bottom, $base_font_size); } // 'right' // TODO: automatic width calculation $handler = get_css_handler('right'); $this->right = $handler->get(); $handler = get_css_handler('z-index'); $this->z_index = $handler->get(); // 'PSEUDO-CSS' properties // '-align' $handler = get_css_handler('-align'); $this->pseudo_align = $handler->get(); // '-html2ps-link-destination' global $g_config; if ($g_config["renderlinks"]) { $handler = get_css_handler('-html2ps-link-destination'); $this->pseudo_link_destination = $handler->get(); } else { $this->pseudo_link_destination = ""; } // '-html2ps-link-target' global $g_config; if ($g_config["renderlinks"]) { $handler = get_css_handler('-html2ps-link-target'); $this->pseudo_link_target = $handler->get(); } else { $this->pseudo_link_target = ""; } // '-localalign' $handler = get_css_handler('-localalign'); switch ($handler->get()) { case LA_LEFT: break; case LA_RIGHT: $this->margin->left->auto = true; break; case LA_CENTER: $this->margin->left->auto = true; $this->margin->right->auto = true; break; } // '-nowrap' $handler = get_css_handler('-nowrap'); $this->pseudo_nowrap = $handler->get(); // Layout data $this->baseline = 0; $this->parent = null; // Unique box identifier global $g_box_uid; $g_box_uid++; $this->uid = $g_box_uid; // As PHP in most cases passes a copy of an object instead // of reference and it is pretty hard to track (especially between different versions // of PHP), we'll keep references to all boxes in the global array // global $g_boxes; // $g_boxes[$this->uid] =& $this; }