Я использую ReportLab
для создания отчетов в формате PDF, и ниже приведен код для того же.Проблема в том, что для количества страниц X это занимает время T, но для страниц 2X это занимает намного больше времени, чем 2T.Поскольку мне нужно создавать PDF-файлы, которые могут занимать до 35000 страниц, это большая проблема.Что я могу сделать, чтобы обойти эту проблему.
from reportlab.platypus import TableStyle, SimpleDocTemplate, LongTable, Table
from reportlab.lib.pagesizes import letter
class JournalPDFGenerator(object):
"""
Generates Journal PDF with ReportLab
"""
def __init__(self, pdf_name, profile_report_id):
self.pdf_name = pdf_name
self.profile_report_id = profile_report_id
self.profile_report = ProfileWatchReport.objects.get(id=self.profile_report_id)
self.document = SimpleDocTemplate(self.pdf_name, pagesize=letter)
self.story = []
def get_prepared_rows(self):
row = [your_mark_details, threat_mark_details]
yield row
def generate_pdf(self):
report_table = LongTable([row for row in self.get_prepared_rows()])
self.story.append(report_table)
self.document.build(self.story)