dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
在WLP 9.2中创建打印优化的门户
门户的共同商业需求就在于提供了优化的打印版本。打印优化版本通常意味着在用户打印门户时,不需要打印如页首、页脚、左导航等多余的元素。此外,一些格式化元素会被更改以更好地适应所打印的页面。
在大多数标准的Web站点中,通常可以通过Cascading Style Sheets(CSS)来完成这项工作。大多数人都知道,CSS控制着各元素在屏幕上的显示情况,包括颜色、字体等等。CSS具有媒体类型的概念,它决定着将何种CSS用于何种媒体。一般媒体类型包括屏幕和打印等,可通过以下链接获得完整的媒体类型清单:http://www.w3.org/TR/REC-CSS2/media.html。
浏览器会自动使用所指定的媒体类型。因而在打印具有所指定的CSS打印文件的页面时,浏览器将在打印时自动结合各种样式。这使得开发人员可以为打印之目的更好地控制内容的呈现方式,并且消除了必须再次访问服务器来检索一个为打印而格式化的页面的需求。
还要记住,CSS还可用于确定元素是显示的还是隐藏的,而且我们可以利用它的这种能力创建我们的门户的打印版本。使用CSS中的显示样式,您可以轻松地避开不希望在打印页中出现的页首、页脚、左导航及其他一些元素。
幸运的是,由于WLP高度基于CSS,我们可以在门户中使用同一种机制。skin.xml文件可以控制CSS文件作为CSS的一部分使用,并且skin.xml全面支持WLP 9.2版本的媒体属性。通过创建额外的print.css样式表,我们可以在打印页面时轻松地关闭页眉和页脚的显示。对于更加复杂的需求,您也可以指定一组专为打印媒体类型而调优的平行样式表。
举例来说,下方是一个示例Web站点的简化屏幕快照,它是我目前所参与的dev2dev代码共享项目的一部分。

为了在打印时去除页眉和页脚,我创建了一个包含以下css的样式表,称为print.css:
.bea-portal-body-header, .bea-portal-body-footer {
display: none;
}
随后我向my look and feel下skin目录中的skin.xml添加了新的样式表。skin.xml文件是一种全新的特性,它使开发人员能够细粒度地控制皮肤定义,它取代了8.1版本中所使用的skin.properties文件。将这个新的样式表添加到依赖项列表中非常简单,新行显示如下:
<ns:link href="css/print.css"
rel="stylesheet"
type="text/css"
media="print"/>
新样式表就绪后,若打开Firefox进行打印预览,即可看到,页眉页脚在打印时消失了。

原文出处:http://dev2dev.bea.com/blog/gnunn/archive/2007/02/printing_a_port.html
作者其它文章
|