Zend Framework中的打印与屏幕布局

时间:2012-01-05 06:02:16

标签: css zend-framework layout printing

我正在使用'皮肤'方法将css加载到我的Zend Framework网站。

来自layout.phtml:

  <head>
  <?php 
    print $this->headTitle();
    print $this->headScript();
    $this->loadSkin($this->skin);
    print $this->headLink();
    print $this->jQuery();
    print $this->layout()->customJS;
  ?>
</head>

其中 loadSkin()是一个如下所示的视图助手:

class Zend_View_Helper_LoadSkin extends Zend_View_Helper_Abstract {
  public function loadSkin ($skin) {
    $skinData = new Zend_Config_Xml('./skins/' . $skin . '/skin.xml');
    $stylesheets = $skinData->stylesheets->stylesheet->toArray();
    if (is_array($stylesheets)) {
      foreach ($stylesheets as $stylesheet) {
        $this->view->headLink()->appendStylesheet('$skin.'/css/'.$stylesheet);
      } 
    } 
  } 
}

浏览器(任何图形浏览器)都显示一切正常,包括jQueryUI元素,如:http://i.stack.imgur.com/70PVl.png

但是当我打印时,css完全被忽略了,就像这里: http://i.stack.imgur.com/NGC25.png

我完全难过了 - 在这里或ZF论坛上找不到任何关于为打印提供单独的css参数的内容。任何指针都将非常感谢!

提前致谢, -Roman

2 个答案:

答案 0 :(得分:5)

我不确定,但我认为您必须为CSS文件设置MediaType:

//Display + Print
->appendStylesheet($skin.'/css/'.$stylesheet, 'screen,print');

//Only for Printers
->appendStylesheet($skin.'/css/'.$stylesheet, 'print');

查看以下链接,了解有关样式表的View-Helper的更多信息http://framework.zend.com/manual/de/zend.view.helpers.html#zend.view.helpers.initial.headlink

答案 1 :(得分:0)

尝试使用setStylesheet()方法添加样式表。