如何使用CTRL + p打印机友好功能?

时间:2011-08-24 11:23:30

标签: css xslt printing

我正在处理的网站目前有一个打印图标,弹出一个适合打印的页面,打印效果很好。但是,如果用户按CTRL + p(不按“打印图标”),则不使用打印机友好版本。所以问题是如何让用户在按CTRL + p?

时打印适合打印的版本

可能构成障碍的是打印机友好页面是使用XSLT生成的。有什么想法吗?

我查看了一些涉及使用CSS的文章,但似乎我需要重新定义/创建新的打印机友好页面/ CSS布局,我没有看到如何使用XSLT实现这一点。我仍然包含一个CSS标签,以防你们有些聪明的人有办法用CS解决这个问题。如果不可能,我很抱歉发布了错误的标签..

2 个答案:

答案 0 :(得分:2)

使用带有@media打印选项的样式表来隐藏无打印元素。

我已经快速离开,我认为我已经剥离了大部分元素,你应该能够进一步调整它以更好地满足你的需求。

@media print {

  #col1,#col2 { display:none; }

  #crumbs,#header_smallmenu,#header_search { display:none;}

  .solidblockmenu { display:none; }

  .addthis_toolbox addthis_default_style { display:none;}

  #hbfooter, .hbfooter { display:none; }

  body {background-image: none;}

}

答案 1 :(得分:-1)

这不是Javascript的工作吗?

如果您捕获onKeyDown事件,则可以在按下CTRL + P时捕获,并触发您自己的javascript以打开您的打印机友好页面

function overrideKeyDown(winEvent)
{
    var keyCode; 

    if(!winEvent) 
    { 
              // IE code
        winEvent = window.event; 
        keyCode = winEvent.keyCode; 
    } 
    else 
    {
        keyCode = winEvent.which; 
    } 

    if (keyCode == 80 && winEvent.ctrlKey)
    {
        alert('Printer Friendly Page');
        return false;
    }
}

document.onkeydown = overrideKeyDown;

这适用于IE和Chrome,但令人讨厌的是Firefox仍会弹出“打印机”对话框以及运行Javascript。但是,我想我会发布代码,以防它对你有所帮助。