Использование cfdocument для генерации PDF - PullRequest
1 голос
/ 20 октября 2010

Фактическая таблица намного больше, чем макет, который я собираюсь показать вам, но этот макет действительно объясняет проблему. Пожалуйста, перейдите на http://www.monteandjanicechan.com/test_table.cfm

Толщина линий сетки в таблице идет так, как я хочу в HTML-версии. Вы можете сделать View Source, чтобы увидеть фактический HTML-материал, который генерируется. Теперь я поместил эти HTMl-коды в тег cfdocument с помощью format = "pdf"; перейдите к http://www.monteandjanicechan.com/test_table_pdf.cfm.. Вы увидите непоследовательную толщину линии сетки для чихания и гриппа. Чтобы проиллюстрировать мою точку зрения, я удалил цвета фона и сгенерировал PDF; перейдите к http://www.monteandjanicechan.com/test_table_pdf_nocolor.cfm. Толщина линий сетки вернулась к норме.

Это наводит меня на мысль, что цвет фона одной ячейки каким-то образом переходит в ячейку рядом с ней и закрывает границу. Вот странные вещи:

1) Это ТОЛЬКО происходит в промежутке между строками и ТОЛЬКО со второго ряда до остальной части промежутка. Например, первое чихание в порядке, но граница второго чихания не верна; с первым гриппом все в порядке, но границы второго и третьего гриппа неверны.

2) Цвет фона НЕ охватывает границы собственной ячейки; это только покрывает границу ячейки прямо рядом с этим.

У меня вопрос, как я могу исправить эту проблему?

Любые предложения и указатели с благодарностью.

1 Ответ

1 голос
/ 20 октября 2010

Толщина также варьируется в версии 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>
...