Zend Framework中的打印与屏幕布局

yyc*_*man 0 css printing layout zend-framework

我使用'皮肤'方法将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>
Run Code Online (Sandbox Code Playgroud)

其中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);
      } 
    } 
  } 
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

在此先感谢,罗曼

opH*_*AME 5

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

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

//Only for Printers
->appendStylesheet($skin.'/css/'.$stylesheet, 'print');
Run Code Online (Sandbox Code Playgroud)

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