我看到了可以用简单的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 %}
我希望它只是“知道”页面底部要休息一下并添加新标题的地方...