Я видел, где можно сделать разрыв страницы в простом HTML-шаблоне PDF с надписью
<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-странице для подсчета с использованием шаблона, и я подумал, что я получу плавный ход, и когда я собираю элементы, я отправляю их на веб-страницу, чтобы вставить поле для разрыва страницы.
Поэтому, когда я строю свой объект, я отправляю в контекст представления, который у меня есть, как:
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 %}
Хотелось бы, чтобы он просто «знал», где должна быть перерыв внизу страницы, чтобы добавить новый заголовок ...