Как создать pdf с несколькими страницами на основе html с помощью python pdfkit

Я пытаюсь создать pdf с помощью python, используя библиотеку pdfkit в моем проекте Django, и я хочу отделить каждый контент на отдельной странице, как я могу это сделать

import pdfkit
from django.template.loader import render_to_string

my_contents = [
    {'title':'Example 1', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 2', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 3', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 4', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 5', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']}
]

final_html = ''
for content in my_contents:
    data = {
        'title': content['title'],
        'contents': content['contents'],
    }
    final_html += render_to_string(
        'pdfs/routines_handout.html', data)

my_pdf = pdfkit.from_string(final_html, 'out.pdf')

НАШЕЛ!!! Если я добавлю style='page-break-after' в конце каждой страницы, то следующая будет на другой странице

<div style='page-break-after: always;'></div>

Мой окончательный исправленный код будет таким:

import pdfkit
from django.template.loader import render_to_string

my_contents = [
    {'title':'Example 1', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 2', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 3', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 4', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']},
    {'title':'Example 5', 'contents': ['Lorem ipsum dorer', 'Lorem ipsum']}
]

cont = 0
final_html = ''
total_length = len(my_contents)
for content in my_contents:
    cont += 1
    data = {
        'title': content['title'],
        'contents': content['contents'],
    }

    final_html += render_to_string(
        'pdfs/routines_handout.html', data)
    if not cont == total_length:
        final_html += "<div style='page-break-after: always;'></div>"

my_pdf = pdfkit.from_string(final_html, 'out.pdf')
Вернуться на верх