mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-25 21:54:14 -08:00
48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Labels;
|
|
|
|
abstract class RectangleSheet extends Sheet
|
|
{
|
|
/**
|
|
* Returns the number of columns per sheet
|
|
*
|
|
* @return int
|
|
*/
|
|
public abstract function getColumns();
|
|
|
|
/**
|
|
* Returns the number of rows per sheet
|
|
*
|
|
* @return int
|
|
*/
|
|
public abstract function getRows();
|
|
|
|
/**
|
|
* Returns the spacing between columns
|
|
*
|
|
* @return int
|
|
*/
|
|
public abstract function getLabelColumnSpacing();
|
|
|
|
/**
|
|
* Returns the spacing between rows
|
|
*
|
|
* @return int
|
|
*/
|
|
public abstract function getLabelRowSpacing();
|
|
|
|
|
|
public function getLabelsPerPage() { return $this->getColumns() * $this->getRows(); }
|
|
|
|
public function getLabelPosition($index) {
|
|
$printIndex = $index + $this->getLabelIndexOffset();
|
|
$row = (int)($printIndex / $this->getColumns());
|
|
$col = $printIndex - ($row * $this->getColumns());
|
|
$x = $this->getPageMarginLeft() + (($this->getLabelWidth() + $this->getLabelColumnSpacing()) * $col);
|
|
$y = $this->getPageMarginTop() + (($this->getLabelHeight() + $this->getLabelRowSpacing()) * $row);
|
|
return [ $x, $y ];
|
|
}
|
|
}
|
|
|
|
?>
|