mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-09 23:24:06 -08:00
Merge pull request #14870 from Galaxy102/feature/rotate-labels
Add Label Template: Use with endless 62mm Brother printer rolls
This commit is contained in:
commit
25ba50d6f7
|
@ -25,6 +25,17 @@ abstract class Label
|
|||
*/
|
||||
public abstract function getUnit();
|
||||
|
||||
/**
|
||||
* Returns the PDF rotation.
|
||||
* 0, 90, 180, 270
|
||||
* 0 is a sane default. Override when necessary.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getRotation() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the label's width in getUnit() units
|
||||
*
|
||||
|
|
23
app/Models/Labels/Tapes/Brother/TZe_62mm_Landscape.php
Normal file
23
app/Models/Labels/Tapes/Brother/TZe_62mm_Landscape.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Labels\Tapes\Brother;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\Labels\Label;
|
||||
|
||||
/*
|
||||
* Rotated Label (print direction = landscape) for 62mm wide labels
|
||||
*/
|
||||
abstract class TZe_62mm_Landscape extends Label
|
||||
{
|
||||
private const WIDTH = 62.00;
|
||||
private const MARGIN_SIDES = 1.50;
|
||||
private const MARGIN_ENDS = 1.50;
|
||||
|
||||
public function getWidth() { return Helper::convertUnit(self::WIDTH, 'mm', $this->getUnit()); }
|
||||
public function getMarginTop() { return Helper::convertUnit(self::MARGIN_SIDES, 'mm', $this->getUnit()); }
|
||||
public function getMarginBottom() { return Helper::convertUnit(self::MARGIN_SIDES, 'mm', $this->getUnit());}
|
||||
public function getMarginLeft() { return Helper::convertUnit(self::MARGIN_ENDS, 'mm', $this->getUnit()); }
|
||||
public function getMarginRight() { return Helper::convertUnit(self::MARGIN_ENDS, 'mm', $this->getUnit()); }
|
||||
public function getRotation() { return 90; }
|
||||
}
|
106
app/Models/Labels/Tapes/Brother/TZe_62mm_Landscape_A.php
Normal file
106
app/Models/Labels/Tapes/Brother/TZe_62mm_Landscape_A.php
Normal file
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Labels\Tapes\Brother;
|
||||
|
||||
class TZe_62mm_Landscape_A extends TZe_62mm_Landscape
|
||||
{
|
||||
public function getUnit() { return 'mm'; }
|
||||
public function getHeight() { return 31.50; }
|
||||
public function getSupportAssetTag() { return true; }
|
||||
public function getSupport1DBarcode() { return true; }
|
||||
public function getSupport2DBarcode() { return true; }
|
||||
public function getSupportFields() { return 2; }
|
||||
public function getSupportLogo() { return true; }
|
||||
public function getSupportTitle() { return true; }
|
||||
|
||||
private const BARCODE1D_HEIGHT = 3.00;
|
||||
private const BARCODE1D_MARGIN = 3.00;
|
||||
private const BARCODE2D_SIZE = 20.00;
|
||||
private const BARCODE2D_MARGIN = 1.50;
|
||||
private const TAG_SIZE = 3.00;
|
||||
private const LOGO_HEIGHT = 10.00;
|
||||
private const LOGO_MARGIN = 1.50;
|
||||
private const TITLE_SIZE = 3.00;
|
||||
private const TITLE_MARGIN = 0.50;
|
||||
private const LABEL_SIZE = 2.00;
|
||||
private const LABEL_MARGIN = - 0.35;
|
||||
private const FIELD_SIZE = 3.00;
|
||||
private const FIELD_MARGIN = 0.10;
|
||||
|
||||
public function preparePDF($pdf) {}
|
||||
|
||||
public function write($pdf, $record) {
|
||||
$pa = $this->getPrintableArea();
|
||||
|
||||
$currentX = $pa->x1;
|
||||
$currentY = $pa->y1;
|
||||
|
||||
// Wide 1D barcode on top
|
||||
|
||||
if ($record->has('barcode1d')) {
|
||||
static::write1DBarcode(
|
||||
$pdf, $record->get('barcode1d')->content, $record->get('barcode1d')->type,
|
||||
$currentX, $currentY, $pa->w, self::BARCODE1D_HEIGHT
|
||||
);
|
||||
$currentY = self::BARCODE1D_HEIGHT + self::BARCODE1D_MARGIN;
|
||||
}
|
||||
|
||||
// Left column
|
||||
|
||||
if ($record->has('barcode2d')) {
|
||||
$columnY = $currentY;
|
||||
static::write2DBarcode(
|
||||
$pdf, $record->get('barcode2d')->content, $record->get('barcode2d')->type,
|
||||
$currentX, $columnY,
|
||||
self::BARCODE2D_SIZE, self::BARCODE2D_SIZE
|
||||
);
|
||||
$columnY += self::BARCODE2D_SIZE + self::BARCODE2D_MARGIN;
|
||||
static::writeText(
|
||||
$pdf, $record->get('tag'),
|
||||
$currentX, $columnY,
|
||||
'freemono', 'b', self::TAG_SIZE, 'C',
|
||||
self::BARCODE2D_SIZE, self::TAG_SIZE, true, 0
|
||||
);
|
||||
$currentX += self::BARCODE2D_SIZE + self::BARCODE2D_MARGIN;
|
||||
}
|
||||
|
||||
// Right column
|
||||
if ($record->get('logo')) {
|
||||
static::writeImage(
|
||||
$pdf, $record->get('logo'),
|
||||
$currentX, $currentY,
|
||||
$pa->w - $currentX, self::LOGO_HEIGHT,
|
||||
'L', 'T', 300, true, false, 0
|
||||
);
|
||||
$currentY += self::LOGO_HEIGHT + self::LOGO_MARGIN;
|
||||
}
|
||||
|
||||
if ($record->has('title')) {
|
||||
static::writeText(
|
||||
$pdf, $record->get('title'),
|
||||
$currentX, $currentY,
|
||||
'freesans', '', self::TITLE_SIZE, 'L',
|
||||
$pa->w - $currentX, self::TITLE_SIZE, true, 0
|
||||
);
|
||||
$currentY += self::TITLE_SIZE + self::TITLE_MARGIN;
|
||||
}
|
||||
|
||||
foreach ($record->get('fields') as $field) {
|
||||
static::writeText(
|
||||
$pdf, $field['label'],
|
||||
$currentX, $currentY,
|
||||
'freesans', '', self::LABEL_SIZE, 'L',
|
||||
$pa->w - $currentX, self::LABEL_SIZE, true, 0, 0
|
||||
);
|
||||
$currentY += self::LABEL_SIZE + self::LABEL_MARGIN;
|
||||
|
||||
static::writeText(
|
||||
$pdf, $field['value'],
|
||||
$currentX, $currentY,
|
||||
'freemono', 'B', self::FIELD_SIZE, 'L',
|
||||
$pa->w - $currentX, self::FIELD_SIZE, true, 0, 0.3
|
||||
);
|
||||
$currentY += self::FIELD_SIZE + self::FIELD_MARGIN;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -54,7 +54,7 @@ class Label implements View
|
|||
$pdf = new TCPDF(
|
||||
$template->getOrientation(),
|
||||
$template->getUnit(),
|
||||
[ $template->getWidth(), $template->getHeight() ]
|
||||
[0 => $template->getWidth(), 1 => $template->getHeight(), 'Rotate' => $template->getRotation()]
|
||||
);
|
||||
|
||||
// Reset parameters
|
||||
|
|
Loading…
Reference in a new issue