django pisa - номер страницы только для двух или более страниц - показать номер страницы

Есть ли возможность показать номер страницы с django pisa только для двух или более страниц? Шаблон для отображения номера pagen выглядит следующим образом:

<div id="footerContent">
   <p>Page <pdf:pagenumber></p>
</div>

Я думаю, что необходимо получить количество страниц, прежде чем они будут обработаны в Пизе. Любой вариант использовать оператор if/else, например, псевдо:

if pages > 1:
 ...
else:
 ...

Если вы хотите отобразить, например, страницу 1/5 (страница первая из пяти), также необходимо получить количество страниц?! Нет решения в Пизе для этого?

3 ответа

У меня была проблема с добавлением счетчика, который сообщал бы мне, какой номер страницы я смотрел из общего количества страниц в документе. Это заставило его работать, когда я переключаю импорт Пизы с:

import ho.pisa as pisa

в

import xhtml2pdf.pisa as pisa 

Установите xhtml2pdf с помощью pip

pip install xhtml2pdf

Вот так выглядит мой нижний колонтитул

<div id="footerContent">
    {%block page_foot%}
        Page <pdf:pagenumber> / <pdf:pagecount>
    {%endblock%}
</div>

Я думаю, что вы можете сделать это без использования https://github.com/chrisglass/xhtml2pdf. Что я сделал, я использую разрыв страницы, как показано ниже:

<h1 style="display:none">PAGECOUNT</h1>

а CSS для h1 есть

h1 {
    page-break-before:always;
}

Теперь вы можете получить количество страниц, используя

<your-html-string>.count('PAGECOUNT') + 1

Это невозможно в текущей версии python-pisa. Однако есть некоторые патчи для этого. Если вы используете версию pisa или xhtml2pdf с этого github, вы сможете получить общее количество страниц.

https://github.com/chrisglass/xhtml2pdf

Мой шаблон нижнего колонтитула выглядит так:

<div id="footerContent">
  "Page: <pdf:pagenumber> / <pdf:pagecount>
</div>
Другие вопросы по тегам