2011-10-04 4 views
5

Dodaję pewne wsparcie, aby wydrukować określone strony mojej witryny w przyjaznym dla drukarki formacie. Pierwszą rzeczą, którą zrobiłem, było stworzenie bardziej lub mniej pustego układu, w którym mogę upuścić zawartość. Następnie poszedłem na stronę zawartości i przypisałem ten układ do urządzenia "Drukuj" w Szczegółach prezentacji.Jak uzyskać Sitecore (i moją przeglądarkę) do korzystania z układu wydruku?

To wydaje się nic nie robić. Nadal otrzymuję dokładnie takie same dane wyjściowe w podglądzie wydruku, które widziałem przed zdefiniowaniem jakichkolwiek ustawień drukowania. Szczerze mówiąc, nie jestem do końca pewien, jak to powinno działać. Przypuszczam, że moja przeglądarka musi ponownie poprosić o stronę z nowym agentem użytkownika (???), aby Sitecore zwrócił inny sposób renderowania strony ... ale wypróbowałem Firefoksa, Chrome i IE i otrzymałem takie samo niepożądane wynik z mojego "domyślnego" urządzenia.

Musi brakować czegoś oczywistego?

Odpowiedz

5

Domyślnie urządzenie drukujące będzie używane, gdy na stronie, którą chcesz wydrukować, znajduje się wartość zapytania o wartości ?p=1. Podgląd wydruku w przeglądarce jest po prostu podglądem strony z urządzeniem domyślnym.

Spróbuj umieścić ten tekst w adresie i sprawdź, czy otrzymasz oczekiwany układ.

Jak już wspomniano, istnieje możliwość przełączania urządzenia za pośrednictwem agenta przeglądarki, ale nie będzie to tutaj przydatne. To będzie głównie wykorzystywane do wykrywania urządzeń mobilnych.

+0

aaaa ... Tak, brakuje czegoś bardzo łatwe. Dzięki, Sean. – Bryan

+0

Zasadniczo możesz dowiedzieć się, co sprawia, że ​​używa on określonego układu na urządzeniach, który można znaleźć w: /sitecore/content/layout/devices/ Det domyślny printlayout nazywa się Print i ma "ciąg znaków zapytania". p = 1 "jak pisze Sean, ale możesz to zmienić. – Holger

0

Aby uzyskać dostęp do urządzenia drukującego dynamicznie na kotwicy kliknięcia, czy po

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; 

      } 
Powiązane problemy