Как создать PDF документ с разными размерами страниц в reportlab, python - PullRequest
11 голосов
/ 04 мая 2011

Можно ли создать документ PDF с разными размерами страниц в отчете?

Я хотел бы создать документ, размер первой страницы которого отличается от размера других страниц. Кто-нибудь может помочь?

1 Ответ

13 голосов
/ 05 мая 2011

Да, это должно быть возможно, поскольку PDF поддерживает это, вопрос только в том, как это сделать в ReportLab. Я никогда не делал этого, но должно работать следующее:

c = reportlab.pdfgen.canvas.Canvas("test.pdf")
# draw some stuff on c
c.showPage()
c.setPageSize((700, 500)) #some page size, given as a tuple in points
# draw some more stuff on c
c.showPage()
c.save()

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

Если вы используете PLATYPUS, вы сможете достичь того же самого, но, вероятно, вам понадобится получить фантазию в подклассе BaseDocTemplate для обработки изменяющихся размеров страницы, так как я почти уверен, что механизм PageTemplate не Это уже не поддерживается, поскольку каждый PageTemplate - это в основном способ изменения способа размещения кадров на каждой странице. Но это технически возможно, это просто не задокументировано, и вам, вероятно, придется потратить некоторое время на чтение и понимание того, как PLATYPUS работает внутри.

...