Как разместить заголовки таблицы на каждой странице в печатной версии моей страницы (используя xsl)? - PullRequest
1 голос
/ 11 ноября 2009

У меня огромный XML-файл. И он преобразуется в таблицу HTML с помощью xsl. В браузере это одна страница с вертикальной полосой прокрутки.

Но когда я хочу напечатать документ, я вижу около 10 страниц. Я хочу добавить заголовки таблиц на каждую напечатанную страницу.

Пример xml:

<page>
   <document>
      <id>100</id>
      <name>SomeName</name>
      <date>02.02.2009</date>
   </document>
   ...
</page>

И xsl для него:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/page">
   <table border="1">
      <tr>
         <th>Id</th><th>Name</th><th>Date</th>  <!-- I want to see this on every page -->
      </tr>
      <xsl:apply-templates/>
   </table>
</xsl:template>

<xsl:template match="document">
   <tr>
      <td>
         <xsl:value-of select="id"/>
      </td>
      <td>
         <xsl:value-of select="name"/>
      </td>
      <td>
         <xsl:value-of select="date"/>
      </td>
   </tr>
</xsl:template>
</xsl:stylesheet> 

Я думаю о XSL-FO как о инструменте для печати заголовков на каждой странице, но, насколько я понимаю, он не поддерживается браузерами, и нам требуется специальное программное обеспечение для обработки документов XSL-FO.

Итак, как правильно добавить заголовки в печатную версию веб-страницы?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Вы не хотите предварительно разбивать содержимое на страницы для браузера, потому что вы неизбежно получите браузеры, которые печатают в несколько ином масштабе, чем вы ожидаете, и тогда это будет выглядеть плохо. Ваш самый лучший вариант - предоставить PDF-файл вашего контента, в котором указано, как его печатать, но это не соответствует тому, что вы делаете.

К сожалению, не существует какого-либо стандартизированного способа предоставления разбитых на страницы заголовков, как вы запрашиваете на печатных страницах, отображаемых как HTML.

0 голосов
/ 11 ноября 2009

Вы можете сделать это, используя комбинацию <thead> разделов и CSS. Вам не хватает раздела <thead>. Проверьте эту ссылку .

...