В настоящее время я пытаюсь создать PDF documents
с reportlab
в python. На каждой странице моего PDF, он будет иметь несколько вопросов, как это:Python Reportlab Параграф не пересекает следующую страницу
Посмотрев вокруг, я пытался добиться этого формата с помощью Platypus SimpleDocTemplate
и Platypus Paragraph
. Как это (FYI - это не полный код, но я думаю, что это даст вам примерное представление)
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
doc = SimpleDocTemplate('myfile.pdf')
Story = [Spacer(1,1.65*inch)]
style = styles['Normal']
quetsionno = Paragraph('Questoin no goes here',style)
myquestion = Paragraph('my question goes here',style)
myanswer1 = Paragraph('my answer1 goes here',style)
myanswer2 = Paragraph('my answer2 goes here',style)
myanswer3 = Paragraph('my answer3 goes here',style)
Story.append(quetsionno)
Story.append(myquestion)
Story.append(myanswer1)
Story.append(myanswer2)
Story.append(myanswer3)
Story.append(Spacer(1,0.2*inch))
doc.build(Story)
Это создать на вопросы так, как я хочу, но всякий раз, когда вопрос достигнет к концу страницы, он разделяет вопрос, и это ответы. Как это:
Я не хочу, чтобы это произошло, так что в соответствии с this SO answer, я попытался с помощью paragraph.keepWithNext = True
, но это не имеет никакого значения.
Есть ли способ сохранить мой вопрос + ответы вместе на одной странице (если не хватает места)?
'KeepTogether' является одним из ответов в ссылке, которую я представил в своем вопросе. Когда я его использую, я всегда получаю это сообщение об ошибке 'NameError: глобальное имя KeepTogether 'не определено' –
@ChrisAung Вы должны импортировать его сначала в верхней части своего скрипта, например:' from reportlab.platypus import KeepTogether' – Nitzle
спасибо, я попробую и обновить результат –