Как создать 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')