2010-10-20 93 views
1

實際的表格比我將要展示給你的模擬圖表大得多,但是這個模擬圖表解釋了這個問題。請去http://www.monteandjanicechan.com/test_table.cfm使用cfdocument生成PDF

表格中網格線的粗細在我想要的HTML版本中就會出現。您可以執行查看源查看生成的實際HTML內容。現在,我將這些HTMl代碼放在cfdocument標籤中,格式爲「pdf」;請去http://www.monteandjanicechan.com/test_table_pdf.cfm。你會看到打噴嚏和流感的網格線不一致的厚度。爲了進一步說明我的觀點,我刪除了背景顏色並生成PDF;請去http://www.monteandjanicechan.com/test_table_pdf_nocolor.cfm。網格線的厚度恢復正常。

這使我相信一個單元格的背景顏色會以某種方式轉到它旁邊的單元格並掩蓋邊框。這裏是奇怪的事情:

1)這是隻發生在rowspan和只發生從第二行到其餘的rowspan。例如,第一次打噴嚏可以,但第二次打噴嚏的邊界不正確;第一流感是可以的,但第二流感和第三流感的邊界不正確。

2)背景顏色根本不覆蓋自己的細胞的邊界;它只覆蓋旁邊單元格的邊界。

我的問題是,我該如何解決這個問題?

任何建議和指針非常感謝。

回答

1

厚度因HTML版本而異。我認爲問題出在你的CSS規則上。

這工作我認爲你想要的,雖然它可能會改善。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
    <title>Test Table</title> 
    <style type="text/css"> 
    td { 
     border-top: 1px solid black; 
     border-left: 1px solid black; 
    } 
    .right { border-right: 1px solid black; } 
    .bottom {border-bottom: 1px solid black; } 
    </style> 
    </head> 
    <body> 
<table border="0" cellspacing="0" cellpadding="5"> 
    <tr> 

    <td class="a_style">Name</td> 
    <td class="a_style">Problem</td> 
    <td class="right">Treatment</td> 
    </tr> 
    <tr> 
    <td class="b_first">Jane Doe</td> 
    <td class="c_first" style="background-color:#ffff99">Cough</td> 

    <td class="right" style="background-color:#ffff99">Vitamins</td> 
    </tr> 
    <tr> 
    <td class="b">John Doe</td> 
    <td class="c" style="background-color:#99FF99">Sneezing</td> 
    <td class="right" rowspan="2" style="background-color:#99FF99">Nose Spray</td> 
    </tr> 

    <tr> 
    <td class="b">Joe Schmo</td> 
    <td class="" style="background-color:#99FF99">Sneezing</td> 
    </tr> 
    <tr> 
    <td class="b">Joe Six Pack</td> 
    <td class="c" style="background-color:#cccccc">Flu</td> 

    <td class="right bottom" rowspan="3" style="background-color:#cccccc">Flu Shot</td> 
    </tr> 
    <tr> 
    <td class="b">Joe The Plumber</td> 
    <td class="" style="background-color:#cccccc">Flu</td> 
    </tr> 
    <tr> 

    <td class="bottom">Joe Doe</td> 
    <td class="bottom" style="background-color:#cccccc">Flu</td> 
    </tr> 
</table> 
</body> 
</html> 
+0

不,這不是我想要的。就像我寫的,http://www.monteandjanicechan.com/test_table.cfm正是我想要的表。某些網格比其他網格更大膽;這是有目的的。更大膽的網格可以劃分類別,這就是我的客戶想要的。 – 2010-10-20 16:24:20

+0

如果可以,請將http://www.monteandjanicechan.com/test_table.cfm和http://www.monteandjanicechan.com/test_table_pdf.cfm放在一起。對於Joe Schmo和John Doe,兩人都有打噴嚏的問題。看看這兩行的治療細胞。治療的左邊界(鼻噴)只適用於John Doe,但不適用於PDF中的Joe Schmo。同樣,Joe Six Pack,Joe The Plumber和Joe Doe都有流感疫苗作爲治療方法。然而,流感疫苗的左邊界只適用於喬六袋,但不適用於喬水管工和喬多。這是我所指的不平坦。 – 2010-10-20 16:31:00

+0

啊,我明白你的意思了。當我放大時,着色向右和/或向下移動1個像素。這就是導致這個問題的原因,我只是不知道你是如何去解決它的。如果cfdocument格式也是flashpaper,它會這樣嗎?這可能只是PDF生成器的一個錯誤。 – Jason 2010-10-20 16:41:17