Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
class FeatureAutomargins {
4
  var $_top_margin;
5
  var $_bottom_margin;
6
 
7
  function FeatureAutomargins() {
8
    $this->_top_margin = 0;
9
    $this->_bottom_margin = 0;
10
  }
11
 
12
  function handle_before_page_heights($params) {
13
    $pipeline =& $params['pipeline'];
14
    $document =& $params['document'];
15
    $media =& $params['media'];
16
 
17
    $boxes = $pipeline->reflow_margin_boxes(0, $media);
18
 
19
    $this->_top_margin = max($boxes[CSS_MARGIN_BOX_SELECTOR_TOP]->get_real_full_height(),
20
                             $boxes[CSS_MARGIN_BOX_SELECTOR_TOP_LEFT_CORNER]->get_real_full_height(),
21
                             $boxes[CSS_MARGIN_BOX_SELECTOR_TOP_LEFT]->get_real_full_height(),
22
                             $boxes[CSS_MARGIN_BOX_SELECTOR_TOP_CENTER]->get_real_full_height(),
23
                             $boxes[CSS_MARGIN_BOX_SELECTOR_TOP_RIGHT]->get_real_full_height(),
24
                             $boxes[CSS_MARGIN_BOX_SELECTOR_TOP_RIGHT_CORNER]->get_real_full_height());
25
    $this->_bottom_margin = max($boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM]->get_real_full_height(),
26
                                $boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM_LEFT_CORNER]->get_real_full_height(),
27
                                $boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM_LEFT]->get_real_full_height(),
28
                                $boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM_CENTER]->get_real_full_height(),
29
                                $boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM_RIGHT]->get_real_full_height(),
30
                                $boxes[CSS_MARGIN_BOX_SELECTOR_BOTTOM_RIGHT_CORNER]->get_real_full_height());
31
 
32
    $media->margins['top'] = $this->_top_margin / mm2pt(1);
33
    $media->margins['bottom'] = $this->_bottom_margin / mm2pt(1);
34
 
35
    $pipeline->output_driver->update_media($media);
36
    $pipeline->_setupScales($media);
37
  }
38
 
39
  function install(&$pipeline, $params) {
40
    $dispatcher =& $pipeline->get_dispatcher();
41
    $dispatcher->add_observer('before-page-heights', array(&$this, 'handle_before_page_heights'));
42
  }
43
}
44
 
45
?>