コード例 #1
0
 function apply(&$box, &$driver)
 {
     $link_target = $box->getCSSProperty(CSS_HTML2PS_LINK_TARGET);
     if (CSSPseudoLinkTarget::is_external_link($link_target)) {
         $driver->add_link($box->get_left(), $box->get_top(), $box->get_width(), $box->get_height(), $link_target);
     } elseif (CSSPseudoLinkTarget::is_local_link($link_target)) {
         if (isset($driver->anchors[substr($link_target, 1)])) {
             $anchor = $driver->anchors[substr($link_target, 1)];
             $driver->add_local_link($box->get_left(), $box->get_top(), $box->get_width(), $box->get_height(), $anchor);
         }
     }
 }
 function parse($value, &$pipeline)
 {
     // Keep local links (starting with sharp sign) as-is
     if (CSSPseudoLinkTarget::is_local_link($value)) {
         return $value;
     }
     $data = @parse_url($value);
     if (!isset($data['scheme']) || $data['scheme'] == "" || $data['scheme'] == "http") {
         return $pipeline->guess_url($value);
     } else {
         return $value;
     }
 }
コード例 #3
0
 function show(&$viewport)
 {
     if (CSSPseudoLinkTarget::is_external_link($this->pseudo_link_target)) {
         $viewport->add_link($this->get_left(), $this->get_top(), $this->get_width(), $this->get_height(), $this->pseudo_link_target);
     }
     if (CSSPseudoLinkTarget::is_local_link($this->pseudo_link_target)) {
         if (isset($viewport->anchors[substr($this->pseudo_link_target, 1)])) {
             $anchor = $viewport->anchors[substr($this->pseudo_link_target, 1)];
             $viewport->add_local_link($this->get_left(), $this->get_top(), $this->get_width(), $this->get_height(), $anchor);
         }
     }
     // Draw border of the box
     $this->border->show($viewport, $this);
     // Render background of the box
     $this->background->show($viewport, $this);
     parent::show($viewport);
     return true;
 }