Можно ли указать шаблон страницы для первой страницы и другой для следующих страниц в reportlab - PullRequest
0 голосов
/ 10 октября 2018

Я строю довольно простой документ в reportlab с утконосом.Это в основном заголовок на всех страницах, а затем объект таблицы с позициями, которые будут расширяться на несколько страниц.

Я пытаюсь выяснить, есть ли способ указать один шаблон страницы дляпервая страница и шаблон страницы для всех последующих страниц.

Из того, что я могу сказать, вы должны поместить вызов NextPageTemplate в качестве потока в вашей истории, но, поскольку один поток занимает несколько страниц, я не могу выполнить вызов NextPageTemplate там.

Я думал, что есть способ указать шаблон onFirstPage и шаблон onLaterPages при создании документа, но я не могу найти это больше.

Есть идеи?

1 Ответ

0 голосов
/ 10 октября 2018

Хорошо, я понял это.Надеюсь, что это поможет кому-то еще в будущем.

Где я видел onFirstPage и onLaterPages, было в методе сборки класса SimpleDocTemplate.И хотя для более простого отчета это работало бы нормально, для моего этот метод не работает.Я использую фрейм для указания полей моего документа, возможно, есть лучший способ сделать это, и SimpleDocTemplate создает свой собственный фрейм поля, также я могу ошибаться.

В любом случае, я подклассBaseDocTemplate для переопределения метода handle_pageBegin, чтобы указать методу сборки переключиться на шаблон второй страницы следующим образом:

    def handle_pageBegin(self):
        '''override base method to add a change of page template after the firstpage.
        '''
        self._handle_pageBegin()
        self._handle_nextPageTemplate('Later')

Затем я мог бы просто добавить 2 шаблона страницы в документ, когда я создаю его, называя второй 'Позже ».

Кажется, сейчас отлично работает.

...