PDF случайное массивное белое пространство, добавленное между блоками HTML

У меня проблема с созданием HTML шаблона для сгенерированного PDF файла. Проблема заключается в том, что между блоками HTML случайно появляются огромные белые пробелы. Никакие стили не могут заставить это произойти. Я пробовал использовать page-break, но это тоже ничего не дало. Проблема также в том, что это не происходит, когда я пытаюсь сохранить PDF с помощью скрипта, который открывает опцию печати браузера с назначением для сохранения в PDF , как это. Это происходит только тогда, когда я пытаюсь сгенерировать PDF файл заранее как здесь . Вы можете видеть слева огромное белое пространство, случайно сгенерированное как здесь. PDF генерируется с помощью WheesyPrint.

        <div>
            <h2>Zdjęcia funkcji w standardzie:</h2>
            <p class='m-0 p-0'><small>*Zdjęcie podlądowe. Wyposażenie może się różnić w zależności od modelu wózka oraz
                producenta</small></p>
            <div style="display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;page-break-before:avoid;">
                {{ wheelchair|function_photos_pdf:'standards' }}
            </div>
        </div>
        <div>
            <h2>Zdjęcia funkcji w opcji:</h2>
            <p class='m-0 p-0'><small>*Zdjęcie podlądowe. Wyposażenie może się różnić w zależności od modelu wózka oraz
                producenta</small></p>
            <div style="display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;page-break-before:avoid;">
                {{ wheelchair|function_photos_pdf:'optionals' }}
            </div>
        </div> 

Вот код, в котором генерируются белые пробелы, и, чтобы вы знали, я пробовал использовать и не использовать page-break-before. Первый скриншот показывает этот метод: response = render(request, 'pdf/wheelchair_report_pdf.html', context) А второй, который не работает, это: response = generate_pdf(request, 'pdf/wheelchair_report_pdf.html', context, f'formularz_wozkow_{slugify(str(wheelchair))}') а generate_pdf работает вот так:

def generate_pdf(request, template_path: str, context: dict = None, filename: str = 'pdf_file.pdf'):
    """Generate pdf."""
    if context is None:
        context = {}

    # Rendered
    html_template = render_to_string(template_path, context)
    css = [
        CSS(filename='/static/css/pdf.css'),
        'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css',
    ]
    html = HTML(string=html_template, base_url=request.build_absolute_uri(), url_fetcher=weasyprint_local_fetcher)
    result = html.write_pdf(stylesheets=css, presentational_hints=True)

    # Creating http response
    response = HttpResponse(content_type='application/pdf;')
    response['Content-Disposition'] = f'inline; filename={filename}'
    response['Content-Transfer-Encoding'] = 'binary'
    with tempfile.NamedTemporaryFile(delete=True) as output:
        output.write(result)
        output.flush()
        output = open(output.name, 'rb')
        response.write(output.read())

    return response 


Дайте мне знать, если вам нужно что-то еще от меня, чтобы помочь

Вернуться на верх