mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-16 21:17:14 +01:00
85 lines
2.0 KiB
PHP
85 lines
2.0 KiB
PHP
|
<?php
|
||
|
require('fpdf.php');
|
||
|
|
||
|
class PDF_Code39 extends FPDF
|
||
|
{
|
||
|
function Code39($xpos, $ypos, $code, $baseline=0.5, $height=5){
|
||
|
|
||
|
$wide = $baseline;
|
||
|
$narrow = $baseline / 3 ;
|
||
|
$gap = $narrow;
|
||
|
|
||
|
$barChar['0'] = 'nnnwwnwnn';
|
||
|
$barChar['1'] = 'wnnwnnnnw';
|
||
|
$barChar['2'] = 'nnwwnnnnw';
|
||
|
$barChar['3'] = 'wnwwnnnnn';
|
||
|
$barChar['4'] = 'nnnwwnnnw';
|
||
|
$barChar['5'] = 'wnnwwnnnn';
|
||
|
$barChar['6'] = 'nnwwwnnnn';
|
||
|
$barChar['7'] = 'nnnwnnwnw';
|
||
|
$barChar['8'] = 'wnnwnnwnn';
|
||
|
$barChar['9'] = 'nnwwnnwnn';
|
||
|
$barChar['A'] = 'wnnnnwnnw';
|
||
|
$barChar['B'] = 'nnwnnwnnw';
|
||
|
$barChar['C'] = 'wnwnnwnnn';
|
||
|
$barChar['D'] = 'nnnnwwnnw';
|
||
|
$barChar['E'] = 'wnnnwwnnn';
|
||
|
$barChar['F'] = 'nnwnwwnnn';
|
||
|
$barChar['G'] = 'nnnnnwwnw';
|
||
|
$barChar['H'] = 'wnnnnwwnn';
|
||
|
$barChar['I'] = 'nnwnnwwnn';
|
||
|
$barChar['J'] = 'nnnnwwwnn';
|
||
|
$barChar['K'] = 'wnnnnnnww';
|
||
|
$barChar['L'] = 'nnwnnnnww';
|
||
|
$barChar['M'] = 'wnwnnnnwn';
|
||
|
$barChar['N'] = 'nnnnwnnww';
|
||
|
$barChar['O'] = 'wnnnwnnwn';
|
||
|
$barChar['P'] = 'nnwnwnnwn';
|
||
|
$barChar['Q'] = 'nnnnnnwww';
|
||
|
$barChar['R'] = 'wnnnnnwwn';
|
||
|
$barChar['S'] = 'nnwnnnwwn';
|
||
|
$barChar['T'] = 'nnnnwnwwn';
|
||
|
$barChar['U'] = 'wwnnnnnnw';
|
||
|
$barChar['V'] = 'nwwnnnnnw';
|
||
|
$barChar['W'] = 'wwwnnnnnn';
|
||
|
$barChar['X'] = 'nwnnwnnnw';
|
||
|
$barChar['Y'] = 'wwnnwnnnn';
|
||
|
$barChar['Z'] = 'nwwnwnnnn';
|
||
|
$barChar['-'] = 'nwnnnnwnw';
|
||
|
$barChar['.'] = 'wwnnnnwnn';
|
||
|
$barChar[' '] = 'nwwnnnwnn';
|
||
|
$barChar['*'] = 'nwnnwnwnn';
|
||
|
$barChar['$'] = 'nwnwnwnnn';
|
||
|
$barChar['/'] = 'nwnwnnnwn';
|
||
|
$barChar['+'] = 'nwnnnwnwn';
|
||
|
$barChar['%'] = 'nnnwnwnwn';
|
||
|
|
||
|
$this->SetFont('Arial','',10);
|
||
|
$this->Text($xpos, $ypos + $height + 4, $code);
|
||
|
$this->SetFillColor(0);
|
||
|
|
||
|
$code = '*'.strtoupper($code).'*';
|
||
|
for($i=0; $i<strlen($code); $i++){
|
||
|
$char = $code[$i];
|
||
|
if(!isset($barChar[$char])){
|
||
|
$this->Error('Invalid character in barcode: '.$char);
|
||
|
}
|
||
|
$seq = $barChar[$char];
|
||
|
for($bar=0; $bar<9; $bar++){
|
||
|
if($seq[$bar] == 'n'){
|
||
|
$lineWidth = $narrow;
|
||
|
}else{
|
||
|
$lineWidth = $wide;
|
||
|
}
|
||
|
if($bar % 2 == 0){
|
||
|
$this->Rect($xpos, $ypos, $lineWidth, $height, 'F');
|
||
|
}
|
||
|
$xpos += $lineWidth;
|
||
|
}
|
||
|
$xpos += $gap;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|