Исправлено расположение HTML таблицы искажены при отображении в mpdf - PullRequest
0 голосов
/ 08 марта 2020

Хотя HTML генерируется в фиксированном макете stati c с собственным CSS, HTML искажается при отображении с помощью mpdf в pdf-файл.

    $mpdf = new Mpdf([
        'mode' => 'utf-8',
        'format' => [460, 405], // should be big enough to fit
        'orientation' => 'P',
    ]);


    $mpdf->AddPageByArray([
        'margin-left' => 0,
        'margin-right' => 0,
        'margin-top' => 0,
        'margin-bottom' => 0,
    ]);

    $mpdf->WriteHTML($data);
    $mpdf->Output($filename . '_EZ.pdf', 'I');

HTML генерируется на основе следующего шаблона

https://github.com/sprain/php-swiss-qr-bill/blob/master/src/PaymentPart/Output/HtmlOutput/Template/PaymentPartTemplate.php

Что вызывает такое поведение в mpdf?

PDF Output with Mpdf

HTML Output

1 Ответ

2 голосов
/ 09 марта 2020

Ну, mpdf очень специфичен c о том, какие css теги вы можете использовать и какие html теги, где и где использовать. Я рекомендую пройти через руководство . Но самая большая проблема, которую я вижу, это использование делений в таблице . Mpdf не поддерживает это. Посмотрите на поддерживаемые теги в документации.

Я рекомендую переписать весь шаблон, прочитав документацию, и сначала протестируйте только половину вашего дизайна и c.

Но чтобы дать вам пару указателей, которые мне помогли.

  1. В ячейке таблицы: всегда используйте интервалы и разрывы, чтобы получить желаемый результат.
<span class="some-class">Value</span></br>
<span class="some-class">Line2</span></br>
Если выравнивание элементов в таблице выполняется по-разному, используйте атрибут align. По возможности используйте inline css. Go шаг за шагом определите только часть макета, а затем Вы должны быть в состоянии выяснить все остальное. Подготовьтесь переписать весь шаблон как минимум 2 - 4 раза.
...