2012-02-04 142 views
0

試圖獲得與A4打印精確的尺寸表創建HTML表有固定尺寸

  • 頂部和紙底雙方表的第一行和最後一行頁邊距必須11毫米的行0毫米
  • 表的行之間
  • 保證金必須4毫米
  • 2毫米左右兩側的每一列之間
  • 38毫米寬×21.2毫米高度每個小區
  • 13 x行,5×列服務,13x5 = 65個細胞

這裏是JS提琴

http://jsfiddle.net/tt13/ZjBrV/

問題

我能在這種情況下做什麼?如何用上面解釋的條件獲得表格?

詳細

HTML表看起來像

<body> 
    <table> 
    <td> 
    <div class="bcell"> 
     sample text2<br/> 
     <img src="..."/><br/> 
     sample text2 
    </div> 
    </td> 
    .... 
    </table> 
</body> 

使用以下CSS實現A4尺寸的打印結果,但得到的東西從我上面所解釋的情況完全不同。

 body {  
      padding:11mm 4mm 0 4mm; 
      background: white; 
      font-family: Arial; 
      width: 210mm; 
      font-size:3mm; 
     } 

     table { 
      page-break-after:always; 
      width: 100%; 
      height: 275mm; 
      margin:0 auto; 
      page-break-inside:avoid;     
      border-collapse: collapse; 

     } 

     td img { 
      height:10mm; 
     } 

     td { 
      width: 38mm; 
      height:21.2mm; 
      padding: 0 1mm 0 1mm; 
      font-style: bold; 
      text-align: center; 
      vertical-align:middle; 
     } 


     tr { 
      page-break-after:auto; 
      page-break-inside:avoid; 
      height:21.2mm; 
      margin:0; 
      padding:0; 
      page-break-inside:avoid;    
     } 
+0

這就像您第三次詢問。如果你設置了一個jsfiddle,你會得到INSTANT結果。對代碼進行調整和播放要比試圖自行解釋它容易得多。 – mowwwalker 2012-02-04 22:00:45

+0

@Walkerneo http://jsfiddle.net/tt13/ZjBrV/ – 2012-02-04 22:06:42

+0

@Walkerneo so?你看過嗎? – 2012-02-04 22:13:00

回答

1

Css無法有效更改表格單元格的寬度。你要做的是將單元格的內容包裝在div或span中,並使用td:first-child設置css的寬度,或使用css table model

2

很明顯,您希望輸出用於打印,並且尺寸至關重要;可能你正在印上吻切標籤紙或其他東西。看起來不太可能你會得到一個HTML解決方案,它將在所有瀏覽器和操作系統上產生像素完美的結果。我會考慮的兩個選項是:

  1. 生成網格作爲圖像並將其顯示在網頁上進行打印。
  2. 生成網格作爲PDF下載和打印。

在所有服務器端環境中都有庫來執行這兩項任務。根據我的經驗,#2產生更好的結果。