使用cfdocument生成PDF

时间:2010-10-20 15:36:40

标签: css coldfusion cfdocument

实际的表比我要向你展示的模型大很多,但这个模型可以解释这个问题。请转到http://www.monteandjanicechan.com/test_table.cfm

表中网格线的粗细以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 个答案:

答案 0 :(得分: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>