Django pdf:使用比萨的长文本页面布局

时间:2011-09-20 13:12:30

标签: django pisa

我使用pisa生成以下布局的一些PDF文件:

  @page {
        size: a4;
        @frame header {
          top: 5.4cm;
          bottom: 4cm;
          left: 1.2cm;
          right: 1.2cm;
        }
        @frame main {
          top: 10.5cm;
          bottom: 4cm;
          left: 1.2cm;
          right: 1.2cm;
        }
        @frame footer {
          top: 26cm;
          left: 1.2cm;
          right: 1.2cm;
        }
      }

有时主框架的内容不够短,无法容纳在单个页面中,因此它也会使用页脚框架的空间。而不是那样,我希望将剩下的文本放在第二页的主框架空间中(并保持其余框架的空间清晰)。有什么建议吗?

1 个答案:

答案 0 :(得分:10)

比萨并不是特别容易理解。我用它来生成几种不同格式的报告。

我没有把我的主要内容放在一个框架内。它也都是英寸/字母大小,但我想准确地告诉你我的设置,并适用于多页。

可以通过为@page<keepinframe></keepinframe>添加保证金来解决您的问题 标签

<document pagesize='letter'>
<head>
    <title>{{ title }}</title>
    <style type="text/css">
        @page {
            size: letter portrait;
            margin: 1.0in 0.25in 0.5in 0.25in;
            padding: 0;

            @frame header {
                -pdf-frame-content: headerContent;
                width: 8in;
                top: 0.5in;
                margin-left: 0.5in;
                margin-right: 0.5in;
                height: 1.0in;
            }
            @frame footer {
                -pdf-frame-content: footerContent;
                width: 8in;
                bottom: 0in;
                margin-left: 2cm;
                margin-right: 2cm;
                height: 1cm;
            }
        } <!-- end of @page bracket -->

        <!-- add content styles here -->
        h1 { text-align: middle; font-size: 18px; }
    </style>
</head>
<body>
<div id='headerContent'>
    <!-- header content -->
</div>
<div>
    <keepinframe>
     <!-- Content -->
    </keepinframe>
</div>
<div id='footerContent'>
    <!-- footer content -->
    <pdf:pagenumber>
</div>
</body>
</document>