2010-10-20 60 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