Я пытаюсь создать PDF-документ с различными нечетными/четными макетами страниц (чтобы разрешить асимметричные границы для привязки) с использованием Python 2.7 и ReportLab. Чтобы еще больше усложнить ситуацию, я пытаюсь создать две колонки на страницу.reportlab different следующая страница
def WritePDF(files):
story = []
doc = BaseDocTemplate("Polar.pdf", pagesize=A4, title = "Polar Document 5th Edition")
oddf1 = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='oddcol1')
oddf2 = Frame(doc.leftMargin+doc.width/2+6, doc.bottomMargin, doc.width/2-6, doc.height, id='oddcol2')
evenf1 = Frame(doc.leftMargin, doc.bottomMargin, doc.width/2-6, doc.height, id='evencol1')
evenf2 = Frame(doc.leftMargin+doc.width/2+6, doc.bottomMargin, doc.width/2-6, doc.height, id='evencol2')
doc.addPageTemplates([PageTemplate(id='EvenTwoC',frames=[evenf1,evenf2],onPage=evenFooter),
PageTemplate(id='OddTwoC', frames=[oddf1, oddf2], onPage=oddFooter)])
...
story.append(Paragraph(whatever, style))
То, что я не могу понять, как сделать ReportLab чередуются между правым и левым (или нечетных и четных) страниц. Какие-либо предложения?
Я думаю, вам нужно [это] (http://www.reportlab.com/apis/reportlab/2.4/platypus.html#reportlab.platypus.doctemplate.NextPageTemplate), и там вы будете вычислять, является ли страница нечетной (справа) или даже (слева) (или наоборот) ... Мне нужно будет это проверить, и я отправлю ответ. – jadkik94
Я могу (и имел) использовать функцию NextPageTemplate, чтобы установить, что следующая страница - например, после того, как я добавил Paragraph() s для (скажем) титульной страницы, я могу установить следующую страницу в другом стиле , Моя проблема заключается в том, что я автоматически набираю тысячи Paragraphs(), и я предполагаю, что мне нужно что-то сделать в BaseDocTemplate (или, возможно, в PageTemplate), который будет чередоваться между шаблонами страниц, чтобы левый шаблон устанавливал правильный шаблон для на следующей странице и наоборот. – TimGJ