2011-09-20 37 views
4

我使用比萨生成以下布局的某些PDF文件长文:Django的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; 
     } 
     } 

有时主框架的内容是不足够短,以适应单页所以它也使用页脚框架的空间。相反,我想在第二页的主框架空间中留下其余的文本(并保持其余框架的空间清晰)。有什么建议么?

回答

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> 
+0

你是对的,它是不容易找出,6年后,仍然是这种情况!无论如何,我一直在遇到一个问题,你有什么想法吗?问题:https://stackoverflow.com/q/45534895/720508 –