Как создать PDF-документ с различными размерами страниц в reportlab, python

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

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

1 ответов


Да, это должно быть возможно, так как 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 pt на 500 pt.

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