2011-10-04 19 views
5

私のサイトの特定のページをプリンタで印刷しやすい形式で印刷するためのサポートを追加しています。だから私がやった最初のことは、コンテンツを取り込むことができる空白のレイアウトを作成することでした。次に、私はコンテンツページに行き、プレゼンテーションの詳細の「印刷」デバイスにこのレイアウトを割り当てました。Sitecore(およびブラウザ)に印刷レイアウトを使用させるにはどうすればよいですか?

これは何もしていないようです。私は印刷設定を定義する前に見た印刷プレビューで、まったく同じ出力を得ています。正直言って、これがどのように機能すべきかは完全にはわかりません。おそらく、私のブラウザは、新しいユーザーエージェント(???)を使ってページを再度要求しなければならないのですが、Sitecoreがページの別のレンダリングを返すようになっています...しかしFirefox、Chrome、IEを試してみましたが、私の「デフォルト」デバイスからの出力。

明白なものがありませんか?

答えて

5

プリントデバイスは、デフォルトで印刷するページに?p=1のクエリーストリング値がある場合に使用されます。ブラウザの印刷プレビューは、Defaultデバイスでページをプレビューするだけです。

アドレスにクエリ文字列を入れて、期待しているレイアウトが得られているかどうかを確認してください。

注意したように、ブラウザエージェント経由でデバイスを切り替えることはできますが、ここではそれは役に立ちません。これは、主に携帯端末の検出に使用されます。アンカークリックで動的に印刷デバイスにアクセスするには

+0

うん... AAAAHを、次の操作を行い非常に簡単。ありがとうSean。 – Bryan

+0

基本的には、デバイス上で特定のレイアウトを使用する要素を見つけることができます。 /sitecore/content/layout/devices/ デフォルトの印刷レイアウトは印刷と呼ばれ、クエリー文字列は「? Seanが書いているように「p = 1」になりますが、これを変更することができます。 – Holger

0

、何かが欠けて

default.aspxを

<asp:HyperLink ID="hlPrintLink" runat="server"> 
</asp:hyperlink> 

//default.aspx.cs

HospitalDirectionsPageItem objHospital = Sitecore.Context.Item; 
     string deviceName = "print"; 
      DeviceItem deviceItem = Sitecore.Context.Database.Resources.Devices.GetAll().Where(d => d.Name.ToLower() == deviceName.ToLower()).First(); 

      if (deviceItem != null) 
      { 
       hlPrintLink.NavigateUrl = Sitecore.Links.LinkManager.GetItemUrl(objHospital) + "?" + deviceItem.QueryString; 

      } 
関連する問題