我正在添加一些支持,以一种友好的打印机友好格式打印我网站的特定页面。所以我做的第一件事就是创建一个或多或少的空白布局,我可以将内容放入其中。然后我转到了一个内容页面,并将此布局分配给演示文稿详细信息中的“打印”设备。
这似乎没有做任何事情。在定义任何打印设置之前,我仍然在打印预览中获得完全相同的输出。说实话,我不完全确定这应该如何运作。据推测,我的浏览器必须再次使用新的用户代理(???)请求页面,以使Sitecore返回页面的不同呈现...但我已经尝试过Firefox,Chrome和IE并获得同样的不受欢迎从我的“默认”设备输出。
必须遗漏一些明显的东西吗?
答案 0 :(得分:5)
默认情况下,当您要打印的页面上有?p=1
查询字符串值时,将使用打印设备。浏览器中的打印预览只是使用默认设备预览页面。
尝试将该查询字符串放在地址中,看看是否得到了您期望的布局。
如您所述,可以通过浏览器代理切换设备,但这在此处没有用。这主要用于移动设备检测。
答案 1 :(得分: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;
}