3

Webページの特定の部分だけを印刷したい(ページ全体ではない)。JSFでこれをどのように達成できますか?

4

2 に答える 2

14

これは通常、CSSで。を使用して制御されdisplay: none|blockます。CSSメディアルールを確認してください。

たとえば@media print {}、デフォルトのCSSファイル内のように:

@media print {
    #header, #footer, #menu { 
        display: none;
    }
}

header(上記の例では、IDを持つHTML要素を非表示にfooterします。 menu

または、汎用スタイルクラスを介して:

@media screen {
    .printonly { 
        display: none;
    }
}

@media print {
    .noprint { 
        display: none;
    }
    .printonly { 
        display: block;
    }
}

styleClass="noprint"次に、印刷から非表示にしたいものと、印刷のみで表示したいものに追加しstyleClass="printonly"ます。

印刷固有のCSSを独自のスタイルシートファイルに入れて、以下を使用して<link media="print">、または次のように参照することもできます。<h:outputStylesheet media="print">

<link rel="stylesheet" href="#{request.contextPath}/css/print.css" media="print" />
<!-- Or -->
<link rel="stylesheet" href="#{resource['css/print.css']}" media="print" />
<!-- Or -->
<h:outputStylesheet name="css/print.css" media="print" />
#header, #footer, #menu { 
    display: none;
}

属性はJSF2.1で<h:outputStylesheet media>のみ追加されたため、JSF 2.0を使用している場合は、少なくとも2.1にアップグレードすることを検討してください(Webアプリ自体のコードや構成を変更せずに100%互換性がある必要があります)。それ以外の場合は、単純なHTML<link>アプローチを選択してください。

于 2011-11-23T19:57:39.613 に答える
0

これは、メディアタイプを指定することにより、純粋なCSSを介して実行できます:http ://www.w3.org/TR/CSS2/media.html

于 2011-11-23T19:58:20.983 に答える