Django PDFTemplateView(easy_pdf)使用分页符整理报告

时间:2019-01-17 21:17:18

标签: django pdf html2pdf

我看到了可以用简单的pdf html模板说的分页符

<p class="pb"></p> 

那太好了,但是我试图运行一个报表,在该报表中页面中断,并且每隔很多行都放一个表头,并特别考虑了第一页。反正有这样做吗?

这是我从以下位置调用html的视图:

class InvoiceReportIDPDF(PDFTemplateView):
  #template_name = 'ipaswdb/provider/report/provider_profile.html'
  template_name = 'ipaswdb/invoice/report/invoice_report_pdf.html'


  def get_context_data(self, **kwargs):
    context = super(InvoiceReportIDPDF, self).get_context_data(pagesize='LetterSize',title='Invoice',**kwargs)
    #print "provider id: ", kwargs['pk']
    self.download_filename = 'invoice-report-' + kwargs['pk'] + '.pdf'

    res = build_invoice_printout_models(kwargs['pk'])
    #res = build_invoice_printout_models('all')

    return context

因此,我可以打印此发票,但订单项只是从一页到下一页,而在下一页的顶部没有漂亮的标题(对于相同的发票)...

我无法使用html页面中的变量来使用模板进行计数,并且我认为ID会变得很光滑,并且在构建要发送到网页的项目时,我会将其放入分页符字段中。

因此,当我构建对象时,我将其发送到视图上下文:

invoiceItem['pagebreak'] = None

if lineCount > xmany:
  invoiceItem['pagebreak'] = 'YES'

然后在html中输入

  {% if invoice.items %}
    {% for item in invoice.items %}
          <tr>
        <td> {{ item.name}} - {{ item.provspecialty }} </td>
        <td> Current Dues </td>
        <td> </td>
        <td> ${{ item.dues }} </td>
      </tr>


      <tr>
        <td></td>
        <td> {{ item.desc }} </td>
        <td> ${{ item.adjustments}}</td>
        <td></td>
      </tr> 
      {% if item.pagebreak %}   
         <p class="pb"> </p> <!-- this didn't work right at all -->
        <!-- just sent a bunch of blank lines then 5 pages down tried to work--> 
      {% endif %}
    {% endfor %}
  {% endif %}

我希望它只是“知道”页面底部要休息一下并添加新标题的地方...

0 个答案:

没有答案