2011-02-04 63 views
1

我需要根據HTML在屏幕上顯示下面的div,但是當我打印索賠人名稱,案例信息,聯繫人時,文件應該在第一頁上打印並且索賠人名稱,服務應該在第二頁打印。CSS屏幕和打印問題

有人可以告訴我一種方法來解決它使用CSS?

<body>   
    <div>Claimant Name</div> 

    <div>Case Info</div>  

    <div>Contacts</div> 

    <div>Files</div> 

    <div>Service</div> 
</body> 
+0

沒有一些複雜的jQuery魔術或與打印樣式表一起復制元素是不可能的。你有沒有考慮提供自定義打印視圖? – 2011-02-04 15:32:37

+0

@皮卡,如果標記不能改變,那麼你是正確的。腳本將有必要再次添加名稱。我想一個jQuery $('body> div:first-child')會將第一個div放在正文中,以便將其複製到正確的位置。 – mark123 2011-02-04 15:59:09

回答

2

相同的答案我張貼在CSS創建者:所以有最肯定有更好的方式來標記它

DIV不借給任何語義。它確實涉及到添加第二個名稱字段,但我不認爲這是任何問題。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Le documents judiciaires</title> 
    <style type="text/css" media="screen"> 
     #secondPage .name { 
      display: none; 
     } 
    </style> 
    <style title="text/css" media="print"> 
     #secondPage { 
      page-break-before: always; 
     } 
    </style> 
</head> 

<body> 
    <div id="firstPage"> 
     <div class="name">Claimant Name</div> 
     <div>Case Info</div> 
     <div>Contacts</div> 
     <div>Files</div> 
    </div> 
    <div id="secondPage"> 
     <div class="name">Claimant Name</div> 
     <div>Service</div> 
    </div> 
</body> 
</html> 
3

你不能保證HTML的打印方式 - 這簡直是不可能的。如果您需要保證文檔的打印方式,您需要使用iTextSharp或類似的

2

創建類似PDF的文檔。您可以使用CSS在監視器顯示屏和打印版上顯示和隱藏各種元素。例如,您可以在文檔上擁有索賠人名稱兩次,但第二個隱藏在屏幕上。打印時可以看到它。

但是,當打印網頁時無法控制分頁。你可能想考慮一個PDF或其他印刷文件格式。 HTML比紙質打印更多地面向瀏覽器顯示。

+0

糟糕,我在發佈我的答案時沒有看到這個,因爲我正在尋找我在其他論壇上發佈的代碼。除了使用page-break-after/page-break之外,它基本上與我說的相同,然後才能控制分頁。我相信這是瀏覽器依賴。我不會把它放過IE瀏覽器以某種方式搞砸了。 :) – mark123 2011-02-04 15:44:59