2011-10-04 6 views
5

Estoy agregando algo de soporte para imprimir páginas específicas de mi sitio en un formato agradable para imprimir. Entonces, lo primero que hice fue crear un Layout más o menos vacío en el que puedo guardar contenido. Luego fui a una página de contenido y asigné este diseño al dispositivo "Imprimir" en Detalles de la presentación.¿Cómo obtengo Sitecore (y mi navegador) para utilizar el diseño de impresión?

Eso no parece hacer nada. Todavía obtengo exactamente el mismo resultado en la Vista previa de impresión que vi antes de definir cualquier configuración de impresión. Para ser honesto, no estoy del todo seguro de cómo debería funcionar esto. Presumiblemente, mi navegador tiene que solicitar la página nuevamente con un nuevo agente de usuario (???) para que Sitecore devuelva una representación diferente de la página ... pero he intentado Firefox, Chrome e IE y obtuve el mismo mensaje no deseado salida de mi dispositivo "Predeterminado".

¿Falta algo obvio?

Respuesta

5

El dispositivo de impresión, de forma predeterminada, se utilizará cuando haya un valor de consulta ?p=1 en la página que desea imprimir. La vista previa de impresión en el navegador es simplemente una vista previa de la página con el dispositivo predeterminado.

Intenta poner esa cadena de consulta en la dirección y ve si obtienes el diseño que estás esperando.

Como ha señalado, existe la posibilidad de cambiar de dispositivo a través de un agente de navegador, pero eso no será útil aquí. Eso se usaría principalmente para la detección de dispositivos móviles.

+0

Aaaah ... sí, falta algo muy fácil. Gracias Sean. – Bryan

+0

Básicamente puede averiguar qué hace que use un cierto diseño en los dispositivos, que se puede encontrar en: /sitecore/content/layout/devices/ ¿La impresión predeterminada de Det se llama Print y tiene una querystring que es "? p = 1 "como escribe Sean, pero puedes cambiar esto. – Holger

0

Para acceder a los dispositivos de impresión de forma dinámica en el ancla clic, hace el siguiente

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; 

      } 
Cuestiones relacionadas