是否可以在 reportlab 中为第一页指定一个页面模板,为后续页面指定另一个页面模板

Is it possible to specify a page template for the first page and another for following pages in reportlab

我正在使用鸭嘴兽在 reportlab 中构建一个相当简单的文档。它基本上是所有页面上的 header,然后是 table object,其中的行项目将扩展到多个页面。

我想弄清楚的是,是否有办法为第一页指定一个页面模板,并为所有后续页面指定一个页面模板。

据我所知,您必须将 NextPageTemplate 调用作为故事中的可流动对象,但由于一个可流动对象占用多个页面,因此我无法在其中调用 NextPageTemplate。

我认为有一种方法可以在构建文档时指定模板 onFirstPage 和模板 onLaterPages,但我似乎再也找不到了。

有什么想法吗?

好吧,我明白了。希望这会在将来帮助其他人。

我在 SimpleDocTemplate 的构建方法中看到了 onFirstPage 和 onLaterPages class。虽然对于一个更简单的报告来说它会工作得很好,但对我来说这种方法不起作用。我正在使用一个框架来指定我的文档的边距,可能有更好的方法来做到这一点,并且 SimpleDocTemplate 创建了它自己的边距框架,我也可能是错的。

无论如何,我 subclassed 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 个页面模板添加到文档中,命名第二个 'Later'。

目前看来效果不错。