7

WeasyPrint のおかげで、PDF でレンダリングするテーブルを Django で生成します。

この表は非常に長くなる可能性があり (行数で言えば)、結果が数ページの pdf で終わる可能性があります。ページの両端に静的フッターを含める必要があるため、css固定ルールを適用しました。

私の問題は、このフッターが非常に長いテーブルと重なっているということです。各フッターの前にテーブルを分割し、次のページでテーブルをレンダリングし続けるように、WeasyPrint に (css を介して) 依頼するにはどうすればよいですか?

<table>
    <tr></tr> <!-- a lot of rows, potentially spreading on several A4 pages -->
</table>

<footer style="position: fixed"> <!-- footer contents will be repeated and overlapped on each page until </table> is not reached -->

</footer>

テーブルタグに適用されるパディングボトムとしてcssルールを使用しようとしましたが、成功しませんでした

ありがとう

4

1 に答える 1

14

私はそれに対する解決策を見つけました。

まず、ページの余白を定義する必要があります。

@page {
    size: A4;
    margin: 15mm 20mm;
}

上下のマージンは15mmです。

ページ/本文に固定フッターを配置すると、これらのマージンの「内側」になり、非fixed要素が重なります。したがって、これらのマージンの「外側」に固定フッターを移動する必要があります。

footer
{
    position        : fixed;
    right           : 0;
    bottom          : 0;
    margin-bottom   : -10mm;
    height          : 10mm;
    text-align      : right;
    font-size       : 10px;
}

およびプロパティはfixedbottomフッターをすべてのページの下部に配置しますが、定義された余白 (重なっている場所) 内に配置します。はフッターの高さを指定し、ネガティブプロパティheightによって余白の「外側」に移動します。>= margin-bottomであることを確認してください。margin-bottomheight

乾杯ドミ

于 2016-07-14T11:50:54.787 に答える