Laravel 6 barryvdh / проблемы с рендерингом laravel-dompdfPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 6 barryvdh / проблемы с рендерингом laravel-dompdf

Сообщение Anonymous »

Недавно я обновил свой проект Laravel с 5.6 до Laravel 6.2, а также обновил пакет dompdf с 0.8.3 до 0.8.5. Теперь мои PDF-файлы отображаются неправильно, они отображались правильно в предыдущих версиях Laravel и dompdf. Я обновился до Laravel 5.8, прежде чем перейти на 6, но не проверял PDF-файлы. Я использую таблицы HTML для форматирования и встроенный CSS.

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

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

Заранее спасибо за прочтение этого очень длинного поста, любая помощь или конструктивная критика приветствуются!

Вот код контроллера:

Код: Выделить всё

/**
* email rental agreement (formats the email as the rental agreement and attaches a pdf)
*
* @param Request $request
* @param RentalAgreement $rentalAgreement
* @return \Illuminate\Http\Response
*/
public function email(Request $request, RentalAgreement $rentalAgreement)
{
$email_message = $request->email_message;
$email_subject = $request->email_subject;
$email_header = $headers = 'Content-Type: text/html; charset=UTF-8';

$address = $rentalAgreement->customer()->getDefaultAddress()->get()->first();

$array = $rentalAgreement->createEmailItems();
$rental = $array['rental'];
$details =  $array['details'];
$company_phone =  $array['company_phone'];
$contact_phone =  $array['contact_phone'];

$emails = array_column(CustomerContactEmail::select('email')->whereIn('id', $request->email)
->get()->toArray(), 'email');

if (count((array)$emails) > 0) {
Mail::to($emails)->cc($rental->company_email)
->send(new RentalAgreementMail($address, $company_phone, $contact_phone, $rental, $details,
$email_message, $email_subject), $email_header);
$alert = 'Email sent.';
} else {
$alert = 'Unable to send email. Rental Agreement Contact has no email addresses.  '
.'Assign email for contact to send email.';
}

return redirect()->action('RentalAgreementController@edit', ['rentalAgreement' => $rentalAgreement,
'customer' => $rentalAgreement->customer])
->with('alert', $alert);
}
Почтовый код:

Код: Выделить всё


@foreach($detail->itemTypeAccessories as $accessory)

@endforeach

{{ number_format($accessory_price, 2, '.', ',') }}


@endif

@if (count($detail->itemTypeServices) > 0)


Services




@foreach ($detail->itemTypeServices as $service)


{{ $service->name }}


{{ empty($service->pivot->delivery_date) ? '' : ' '.$service->pivot->delivery_date->format('m/d/Y') }}


{{ empty($service->pivot->pickup_date) ? '' : $service->pivot->pickup_date->format('m/d/Y') }}


{{ number_format((float)$service->pivot->delivery_price + (float)$service->pivot->pickup_price, 2, '.', ',') }}


@endforeach
@endif




{{ number_format($detail->subtotal, 2, '.', ',') }}


@endforeach






 
 
 
 



Subtotal   

{{ number_format($rental->subtotal, 2, '.', ',') }}




Tax   

{{ number_format($rental->tax_amount, 2, '.', ',') }}





Total   


{{ number_format($rental->total, 2, '.', ',') }}







@if (!empty($rental->purchase_order_terms))
PO Terms:
{!! nl2br(e($rental->purchase_order_terms)) !!}


@endif

@if (!empty($rental->customer_terms_conditions))
@if ($terms_count == 0)

@else

@endif

Customer Terms:
{!! nl2br(e($rental->customer_terms_conditions)) !!}


@endif

@if (!empty($rental->rental_agreement_terms))
@if ($terms_count == 0)

@else

@endif

Rental Terms:
{!! nl2br(e($rental->rental_agreement_terms)) !!}


@endif

@if (!empty($rental->notes))
@if ($terms_count == 0)

@else

@endif

Notes:
{!! nl2br(e($rental->notes)) !!}


@endif








Customer Signature:















We appreciate your business.






Вот адрес электронной почты:
Изображение


Вот PDF-файл:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/600 ... ing-issues
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»