HTML в PDF первая страница Бланк - PullRequest
0 голосов
/ 19 июня 2019

Я конвертирую HTML to PDF, и он работает нормально, но проблема в том, что когда я генерирую PDF, первая страница PDF пуста. Все записи устанавливаются со второй страницы этого PDF.

Я использую платформу Codeigniter. И использую пакет ниже

 @package   Html2pdf
 * @author    Laurent MINGUET <webmaster@html2pdf.fr>
 * @copyright 2017 Laurent MINGUET

Ниже приведен код, который делает все это.

try {
            $html2pdf = new Html2Pdf('P', 'A4', 'fr');
            $html2pdf->pdf->SetDisplayMode('fullpage');
            $html2pdf->writeHTML($content);
            $html2pdf->output($pdfname.'.pdf','D');
        } catch (Html2PdfException $e) {
            $html2pdf->clean();

            $formatter = new ExceptionFormatter($e);
            echo $formatter->getHtmlMessage();
        }

Ниже html содержание

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta name="x-apple-disable-message-reformatting">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Invoice</title>
        <style type="text/css">

        body {background-color: rgb(204,204,204); margin: 0; padding: 0;}
        .header {margin-bottom: 40px;}
        /*.header div {width: 700px;}*/
        .text-right {text-align: right;}
        .table-value td { border-bottom: 1px solid #e7ecf1;
        border-right: 1px solid #e7ecf1;
        border-left: 1px solid #e7ecf1;}
        .table-value th{ border-top: 1px solid #e7ecf1;
        border-bottom: 2px solid #c8c8c8;
        border-right: 1px solid #e7ecf1;
        border-left: 1px solid #e7ecf1;}

        </style>
    </head>
    <body>
        <!-- <page size="A4"> -->
        <div class="header">
            <table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="width: 100%; font-size: 11pt;">
                <tr>
                    <td colspan="1" style="width: 360px;">
                        <img src="http://test.com/assets/image-2019-05-13-16-32-28-565.png" style="width: 60%;">
                    </td>
                    <td colspan="1" valign="middle" style=" text-align: right; width: 350px;">
                        <p style="margin: 0;">Test</p>
                        <p style="margin: 0;">Test</p>
                        <p style="margin: 0;">Test</p>
                    </td>
                </tr>
            </table>   
        </div>
        <div class="content">
            <div class="content-box" style="padding-bottom: 30px; border-bottom: 1px solid #000; margin-bottom: 50px;">
                <p style="color: #d71383;font-size: 36px;margin-bottom: 10px;">Test</p>
                <p></p>
                <div style="line-height: 20px;">
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="client-name">Test: <span>##COMPANYNAME##</span></div>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="client-contact">Test: <span>##USERNAME##</span></div>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="client-email">E-mail: <span>##EMAIL##</span></div>
                    <p></p>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="uren-periode">Test: <span>##FROMDATETODATE## </span></div>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="datum">Test: <span>##TODAYDATE##</span></div>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="total-aantal-uren">Total: <span>##HOURMIN##</span></div>
                    <div style="margin-top: 0px;margin-bottom: 0px;" id="hourly-rate">Test: <span>##HOURLYRATE##</span></div>
                </div>
            </div>
            <div class="table-value-box">
                <div class="table-responsive">
                    <table class="table-value" width="100%" cellspacing="0" cellpadding="0" role="presentation"  style="max-width: 800px;margin: 0 auto; font-size: 11pt;">
                        <thead>
                            <tr>
                                <th style="width: 60px;text-align: center;vertical-align: middle;line-height: 5px; height: 25px;"><span>Ticket #</span></th>
                                <th style="width: 100px;text-align: center;vertical-align: middle;line-height: 5px; height: 25px;"><span>Datum</span></th>
                                <th style="width: 288px;text-align: center;vertical-align: middle;line-height: 5px; height: 25px;"><span>Onderwerp</span></th>
                                <th style="width: 158px;text-align: center;vertical-align: middle;line-height: 5px; height: 25px;"><span>Tijd</span></th>
                                <th style="width: 100px;text-align: center;vertical-align: middle;line-height: 5px; height: 25px;"><span>Status</span></th>
                            </tr>
                        </thead>
                        <tbody>
                            ##DATA##
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
        <!--   </page> -->
    </body>
</html>

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 июня 2019

Не вызывая конструктор дважды, попробуйте следующее:

 try {

            $html2pdf = new Html2Pdf('P', 'A4', 'fr', true, 'UTF-8', [2, 2, 2, 5]);
            $html2pdf->pdf->SetDisplayMode('fullpage');
            $html2pdf->writeHTML($content);
            $html2pdf->output($pdfname.'.pdf','D');
        } catch (Html2PdfException $e) {
            $html2pdf->clean();

            $formatter = new ExceptionFormatter($e);
            echo $formatter->getHtmlMessage();
        }

Кроме того, количество страниц и размещение разрывов страниц сильно зависит от структуры вашего HTML-контента.Пустой тег <page> или неуместное значение <div> также могут создавать проблемы при использовании html2pdf .

. Если приведенное выше решение не помогает, опубликуйте образец содержимого HTML-документа, особеннопервые несколько строк из источника браузера, постараюсь помочь

...