Laravel Blade foreach l oop в Laravel -DOMPDF выходной файл - PullRequest
0 голосов
/ 14 марта 2020

У меня проблемы с использованием DOMPDF и Laravel Blade. Я использую DOMPDF для рендеринга блэйд-представления в PDF, следуя их документации, но когда у меня есть записи, которые занимают больше страницы, они обрезают их. Это как overflow:hidden добавлено на страницу, поэтому записи не будут отображаться. Вы можете увидеть на изображении ниже. Вы можете ясно видеть, что есть еще одна запись внизу, но следующая страница - это квалификации, а не следующая запись в списке.

Я пытался использовать разрывы страниц и все виды, чтобы попытаться заставить это работать, но из-за моей жизни это просто не хочет играть в мяч.

Я не могу найти в их документации ничего, что бы указывало на то, что это проблема, и я не уверен, что ее вызывает.

Используемый пакет: barryvdh / laravel -dompdf

Предоставленный PDF:

enter image description here

Раздел загружаемого представления:

Пожалуйста, извините за таблицы, но поскольку PDF-файлы не загружают CSS3, мне нужно go вернуться к основам, чтобы получить правильные результаты моделирования, необходимые для PDF.

<tr>
    <td class="border-b-4 border-grey-200 pb-5 mb-5">
        <table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
            <tr>
                <td>
                    <h1 class="text-6 text-grey-700 mb-3">Employment History</h1>
                </td>
            </tr>
        </table>
        @foreach ($employers as $employer)
        <table width="100%" class="mb-5" style="width:100%" border="0" cellpadding="0">
            <tr>
                <td class="border border-grey-200 p-5 rounded">
                    <h2 class="capitalize text-grey-700 text-lg">{{ $employer->job_title }}</h2>
                    <span class="text-grey-600">{{ $employer->employer_name }}</span>
                    <p class="my-3 text-blue-500 text-sm">
                        <span>{{ date('jS F Y', strtotime($employer->from_date)) }}</span>
                        <span> — </span>
                        @if ($employer->current != 1)
                            <span>{{ date('jS F Y', strtotime($employer->to_date)) }}</span>
                        @else
                            <span>Present</span>
                        @endif
                    </p>
                    <div class="markdown text-grey-700">{!! $employer->description !!}</div>
                </td>
            </tr>
        </table>
        @endforeach
    </td>
</tr>

Контроллер PDF:

PDF::setOptions([
    'dpi' => 150,
    'defaultFont' => 'sans-serif',
    'fontHeightRatio' => 1,
    'isPhpEnabled' => true,
]);

$pdf = PDF::loadView('pdf_cv', [
    'cv' => $cv,
    'awards' => $awards,
    'employers' => $employers,
    'hobbies' => $hobbies,
    'images' => $images,
    'languages' => $languages,
    'projects' => $projects,
    'qualifications' => $qualifications,
    'skills' => $skills
]);

return $pdf->stream();

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

Если вам нужна дополнительная информация, я могу ее предоставить.

1 Ответ

0 голосов
/ 15 марта 2020

Проблема с этим была установка таблицы. Я не знаю точно, что происходило, потому что вы не можете просматривать PDF-файлы, но таблица, похоже, продолжала перекрывать друг друга, вызывая ее срыв со страницы.

...