Я использую пакет laravel-dompdf для создания pdf.
Я мог бы нарисовать диагональную линию, используя rotate
CSS.
Как видите, в моем документе много диагональных линий, поэтому я хочу нарисовать линию скриптами.
Контроллер
public function downloadPDF () {
$pdf = PDF::loadView('test', [
'users' => $users //$users is array
])->setPaper('a4', 'portrait');
return $pdf->download("test.pdf");
}
Просмотр(test.blade.php)
<!DOCTYPE html>
<html>
...
<body>
<table>
<tbody>
<tr>
<th>{{-- Draw diagonal line here --}}</th>
<th>Name</th>
<th>TEL</th>
</tr>
@foreach($users as $key=>$user)
<tr>
<td>{{ $key }}</td>
<td>{{ $user['name'] }}</td>
<td>{{ $user['tel'] }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
Ниже приведен пример формата pdf.
Как рисовать диагональные линии с помощью скрипта?
stackoverflow.com/questions/15727675/… помогает?
или иначе stackoverflow.com/questions/28425574/…
@NicoHaase Некоторые CSS не работают в dompdf.
Не стесняйтесь добавлять все пояснения к вашему вопросу, редактируя его. Вы пытались использовать какой-либо CSS до сих пор?
@NicoHaase Я пытался. Это то, что могут почувствовать только люди, которые использовали laravel-dompdf
.
dompdf должен нормально поддерживать rotate
, поэтому «Некоторые CSS не работают в dompdf» может быть правдой, но здесь неуместно? Покажите, что вы пробовали, пожалуйста. (Тем не менее, dompdf также является древним, он действительно поддерживает только CSS 2.1 с небольшим количеством CSS3 и HTML4 вместо HJTML5, технологии более 20 лет назад).
@Mike'Pomax'Kamermans Вы правы. rotate
работает. Как видите, я хочу нарисовать линию скриптом, потому что в моем документе много диагональных линий.
@NicoHaase Спасибо. rotate
работаем над dompdf. Как видите, в моем документе много диагональных линий, поэтому я хочу нарисовать линию скриптами.
Вы не можете, потому что вы не можете «рисовать линии» в HTML, вам нужно либо создать элемент и использовать CSS, чтобы он выглядел как линия (например, граница и преобразование), либо вы создаете элемент холста и рисуете линию вместо этого. Не знаю, поддерживает ли dompdf холст, это вам нужно проверить.
@Mike'Pomax'Kamermans Я нашел подсказку. Я буду использовать Dompdf\Adapter\CPDF::line()
в лезвии.
Пожалуйста, добавьте все попытки к вашему вопросу, отредактировав его. Вы не предоставили общий доступ ни к одному CSS, который используете
Я мог бы использовать функцию line
класса Dompdf\Adapter\CPDF
.
В качестве интерфейса рендеринга PDF CPDF
предоставьте возможность включения php-скрипта на лезвии, используя set_option("enable_php", true)
линейная функция
line($x1, $y1, $x2, $y2, $color, $width, $style = [])
Контроллер
public function downloadPDF () {
$pdf = PDF::getDomPDF()->set_option("enable_php", true)->loadView('test', [
'users' => $users //$users is array
])->setPaper('a4', 'portrait');
return $pdf->download("test.pdf");
}
<script type = "text/php">
if (isset($pdf)) {
$pdf->page_script('
$pdf->line(100, 100, 200, 200, array(0,0,0), 0.7);
');
}
</script>
Пожалуйста, поделитесь более подробной информацией, например кодом, который вы используете в настоящее время.