223 lines
7.2 KiB
PHP
223 lines
7.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Mpdf\Mpdf;
|
|
use Mpdf\QrCode\Output;
|
|
use Mpdf\QrCode\QrCode;
|
|
|
|
class PalletController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
}
|
|
|
|
public function downloadReprintQrPdf($palletNo)
|
|
{
|
|
$qrCode = new QrCode($palletNo);
|
|
$output = new Output\Png();
|
|
$qrBinary = $output->output($qrCode, 100);
|
|
$qrBase64 = base64_encode($qrBinary);
|
|
|
|
return '
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body { margin: 0; padding: 0; width: 60mm; height: auto; font-size: 10pt; font-family: DejaVu Sans, sans-serif; }
|
|
.sticker-table { width: 60mm; height: 14mm; border-collapse: collapse; page-break-after: always; }
|
|
.qr-cell { width: 14mm; text-align: right; vertical-align: bottom; padding-left: 0mm; padding-top: 0mm; }
|
|
.text-cell { text-align: left; vertical-align: middle; font-size: 20pt; padding-left: 1mm; padding-top: 2mm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: bold; }
|
|
img.qr { width: 19mm; height: 19mm; display: block; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<table class="sticker-table">
|
|
<tr>
|
|
<td class="qr-cell">
|
|
<img class="qr" src="data:image/png;base64,' . $qrBase64 . '" alt="QR" />
|
|
</td>
|
|
<td class="text-cell">
|
|
' . htmlspecialchars($palletNo) . '
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<script>
|
|
window.onload = function () {
|
|
window.print();
|
|
setTimeout(function () {
|
|
window.close();
|
|
}, 500); // Wait 0.5 seconds before closing
|
|
};
|
|
</script>
|
|
</body>
|
|
</html>
|
|
';
|
|
|
|
// $mpdf = new Mpdf([
|
|
// 'mode' => 'utf-8',
|
|
// 'format' => [60, 14],
|
|
// 'margin_left' => 0,
|
|
// 'margin_right' => 0,
|
|
// 'margin_top' => 0,
|
|
// 'margin_bottom' => 0,
|
|
// // 'tempDir' => '/var/www/storage/mpdf-tmp',
|
|
// ]);
|
|
|
|
// $mpdf->WriteHTML($html);
|
|
// // Output PDF to browser for printing
|
|
// $mpdf->Output('qr-label.pdf', 'I');
|
|
}
|
|
|
|
// public function downloadQrPdf($palletNo)
|
|
// {
|
|
// $qrCode = new QrCode($palletNo);
|
|
// $output = new Output\Png();
|
|
// $qrBinary = $output->output($qrCode, 100);
|
|
// $qrBase64 = base64_encode($qrBinary);
|
|
|
|
// $htmlBlock = '
|
|
// <table class="sticker-table">
|
|
// <tr>
|
|
// <td class="qr-cell">
|
|
// <img class="qr" src="data:image/png;base64,' . $qrBase64 . '" alt="QR" />
|
|
// </td>
|
|
// <td class="text-cell">
|
|
// ' . htmlspecialchars($palletNo) . '
|
|
// </td>
|
|
// </tr>
|
|
// </table>';
|
|
|
|
// return '
|
|
// <html>
|
|
// <head>
|
|
// <style>
|
|
// body { margin: 0; padding: 0; width: 60mm; height: auto; font-size: 10pt; font-family: DejaVu Sans, sans-serif; }
|
|
// .sticker-table { width: 60mm; height: 14mm; border-collapse: collapse;}
|
|
// .qr-cell { width: 14mm;}
|
|
// .text-cell { text-align: left; vertical-align: middle; font-size: 22pt; padding-left: 1mm; padding-top: 2mm; white-space: nowrap; font-weight: bold; }
|
|
// img.qr { width: 19mm; height: 19mm; display: block; margin-left: -2mm;}
|
|
// </style>
|
|
// </head>
|
|
// <body>
|
|
// ' . $htmlBlock . $htmlBlock . '
|
|
// <script>
|
|
// window.onload = function () {
|
|
// window.print();
|
|
// setTimeout(function () {
|
|
// window.close();
|
|
// }, 1000); // Wait 1 second before closing
|
|
// };
|
|
// </script>
|
|
// </body>
|
|
// </html>';
|
|
|
|
// // $mpdf = new Mpdf([
|
|
// // 'mode' => 'utf-8',
|
|
// // 'format' => [60, 14],
|
|
// // 'margin_left' => 0,
|
|
// // 'margin_right' => 0,
|
|
// // 'margin_top' => 0,
|
|
// // 'margin_bottom' => 0,
|
|
// // // 'tempDir' => '/var/www/storage/mpdf-tmp',
|
|
// // ]);
|
|
|
|
// // $mpdf->WriteHTML($html);
|
|
// // // Output PDF to browser for printing
|
|
// // $mpdf->Output('qr-label.pdf', 'I');
|
|
// }
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
|
|
public function downloadQrPdf($palletNo)
|
|
{
|
|
$qrCode = new QrCode($palletNo);
|
|
$output = new Output\Png();
|
|
$qrBinary = $output->output($qrCode, 100);
|
|
$qrBase64 = base64_encode($qrBinary);
|
|
|
|
$htmlBlock = '
|
|
<table class="sticker-table">
|
|
<tr>
|
|
<td class="qr-cell">
|
|
<img class="qr" src="data:image/png;base64,' . $qrBase64 . '" alt="QR" />
|
|
</td>
|
|
<td class="text-cell">
|
|
' . htmlspecialchars($palletNo) . '
|
|
</td>
|
|
</tr>
|
|
</table>';
|
|
|
|
$html = '
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body { margin: 0; padding: 0; width: 60mm; height: auto; font-size: 10pt; font-family: DejaVu Sans, sans-serif; }
|
|
.sticker-table { width: 60mm; height: 14mm; border-collapse: collapse; page-break-after: always; }
|
|
.qr-cell { width: 14mm; text-align: right; vertical-align: bottom; padding-left: 0mm; padding-top: 0mm; }
|
|
.text-cell { text-align: left; vertical-align: middle; font-size: 22pt; padding-left: 1mm; padding-top: 2mm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: bold; }
|
|
img.qr { width: 16mm; height: 16mm; display: block; margin-left: -2mm;}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
' . $htmlBlock . $htmlBlock . '
|
|
<script>
|
|
window.onload = function () {
|
|
window.print();
|
|
setTimeout(function () {
|
|
window.close();
|
|
}, 1000); // Wait 1 second before closing
|
|
};
|
|
</script>
|
|
</body>
|
|
</html>';
|
|
|
|
$mpdf = new Mpdf([
|
|
'mode' => 'utf-8',
|
|
'format' => [60, 14],
|
|
'margin_left' => 0,
|
|
'margin_right' => 0,
|
|
'margin_top' => 0,
|
|
'margin_bottom' => 0,
|
|
// 'tempDir' => '/var/www/storage/mpdf-tmp',
|
|
]);
|
|
|
|
$mpdf->WriteHTML($html);
|
|
$mpdf->Output('qr-label.pdf', 'I');
|
|
}
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show(string $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*/
|
|
public function update(Request $request, string $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*/
|
|
public function destroy(string $id)
|
|
{
|
|
//
|
|
}
|
|
}
|