Django PDFTemplateView (easy_pdf) приведение в порядок отчета с разрывами страниц - PullRequest
0 голосов
/ 18 января 2019

Я видел, где можно сделать разрыв страницы в простом 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 %}

Хотелось бы, чтобы он просто «знал», где должна быть перерыв внизу страницы, чтобы добавить новый заголовок ...

...