Как перенести слова без разрыва в pdf?

from reportlab.pdfgen import canvas
from reportlab.lib.units import cm



text = "My thought is to go about it by writing a function to split into a list, iterate through the list for matches, and then reorder as I find the word"
can = canvas.Canvas("test.pdf")
counter = 0
for i in range(0, len(text), 23):
    line = text[i:i + 23]
    counter += 1
    can.drawString(104, 712 - i * cm, line)
    if counter == 2:
        line = text[i:i + 70]
        can.drawString(40, 698, line)
        break

can.save()

Все работает как нужно, оно считает буквы и пробел, но т.к. текст большой, при переносе слова разрываются и постоянно нужно это редактировать:
"My thought is to go abo
ut it by writing a function to split into a list, iterate through th"
Есть вариант, чтобы считать слова?
Я думал использовать "coun_words += 1", но не понимаю как это применить.
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Hery1 Автор вопроса
text = text.replace('\n', ' ')
    if case_number:
        lines = textwrap.wrap(text, width=25) # 25
        first_line = lines[0]
        remainder = ' '.join(lines[1:])

        lines = textwrap.wrap(remainder, 25) # 25
        lines = lines[:4]  # максимальное количество строк, не считая первой..

        can.drawString(405, 775, first_line)
        for n, l in enumerate(lines, 1):
            can.drawString(405, 773 - (n*15), l)


Мне повезло нашел что искал я приспособил к своим нуждам. Я выложил образец может кому-нибудь пригодиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы