2011-07-17 14 views
7

Bir <p:dataTable> yazdırmak istiyorum, bu yüzden <p:printer> kullanın, ancak cildi yazdırmayı atlayıp <h:dataTable> gibi görünmesini istiyorum . Bunu nasıl yapabilirim?Nasıl yapılır: PrimeFaces p: dataTable için standart h: dataTable (ciltsiz) ve sonra yazdırın

Ayrıca, baskının kağıt yönünü değiştirmek mümkün mü? Onu portre yerine manzara olarak basmak istiyorum.

<h:outputLink id="lnk" value="#"> 
    <p:printer target="tbl" /> 
    <p:graphicImage value="http://www.primefaces.org/showcase/images/print.png" /> 
</h:outputLink> 

<p:printer> etiketinde uygun herhangi bir özellik bulamadım.


Güncelleme: ayrıca sadece sadece ikinci soruya cevap verebilir üzüldüm boşver <p:printer> yanı bir <h:dataTable> kullanılabilir.

cevap

7

Her iki özellik de CSS @media print rule ile yanıtlanır. Basılı çıktıya özgü CSS stillerini belirtmenize izin verir. Bu kuralları normal CSS stil sayfası dosyasında veya <style> öğesinde olağan şekilde gömebilirsiniz.


Bir <p:dataTable> yazdırmak istiyorum, bu yüzden <p:printer> kullanıyorum ama deriyi baskı atlamak ve bir <h:dataTable> süsü istiyorum. Bunu nasıl yapabilirim?

Arama <p:dataTable> ait sınıfadı ve @media kuralda geçersiz:

@media print { 
    .primeFaces-dataTable-className { 
     border: 0; 
     margin: 0; 
     padding: 0; 
     background: none; 
     color: black; 
    } 
} 

olasılıkla daha, ben başının üstünden hepsini yok bilmiyorum, sen gerekir Firebug veya Chrome geliştirici araçlarını kullanarak hangi sınıf adının kullanıldığını ve hangi özelliklerin ayarlandığını kontrol edin; böylece 0, none veya başka bir varsayılana sıfırlamanız gerekir.


Ayrıca, baskı kağıt yönünü değiştirmek mümkündür? Onu portre yerine manzara olarak basmak istiyorum. CSS'yi kullanın. aşağıdaki gibi

CSS 2.1 gereğince, bunu belirtebilirsiniz:

@media print { 
    @page { 
     size: landscape; 
    } 
} 

Ancak bu tarayıcı belirli engelleri vardır, FF ve MSIE < = 7 desteklenmeyenler. Çözümler için, bu sorunun kabul edilen yanıtını kontrol edin: Landscape printing from HTML

+0

wow. Bu –

+0

hm güzel cevap gerçekten thx bilmek iyidir ama başka bir tane var :). Ekranda çok fazla bilgi olduğunda sadece bir sayfa yazdırılır ve diğer bilgiler kaybolur. Bu sorunu nasıl çözdüğünü biliyor musun? – hudi