Я использую пакет barryvdh/laravel-dompdf в laravel для создания pdf-файлов и их печати.
мой принтер печатает штрих-код небольшого размера, например 45 мм * 30 мм
Я использую этот код, чтобы сделать PDF как
$pdf = new Dompdf(new Options(['dpi' => 200]));
$pdf->loadHtml('
<img src = "data:image/png;base64,' . base64_encode($barcode) . '">
<br/>
<span style = "text-align:center;">' . $code . '</span>
<br/>
<span>' . $product->name . '(' . $brand->name . ')</span>
');
$pdf->setPaper([0, 0, 127, 85]);
$pdf->render();
$name = $code . '.pdf';
$path = 'barcodes/' . $name;
Storage::disk('public')->put($path, $pdf->output());
и результат:
как я могу разместить весь контент на одной странице, а не на трех страницах






Поскольку вы использовали маленькую бумагу, я думаю, что поле по умолчанию для бумаги слишком большое, и оно подходит только для одной вещи для каждой бумаги, попробуйте найти правильный размер поля страницы.
попробуйте добавить это к вашему коду:
<style>
@page { margin: 0px; }
body { margin: 0px; }
</style>
если вы попытаетесь запустить его в контроллере и потерпите неудачу, попробуйте сделать это в файле блейда и используйте это для вызова файла блейда:
$pdf->loadHtml(view('blade-file', compact('barcode', 'code', 'product', 'brand')));
Или вы можете изменить размер изображения и текста, чтобы они поместились на одной странице.