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>