replace zxq.co/ripple/hanayo
This commit is contained in:
49
vendor/github.com/boombuler/barcode/codabar/encoder.go
generated
vendored
Normal file
49
vendor/github.com/boombuler/barcode/codabar/encoder.go
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
// Package codabar can create Codabar barcodes
|
||||
package codabar
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
|
||||
"github.com/boombuler/barcode"
|
||||
"github.com/boombuler/barcode/utils"
|
||||
)
|
||||
|
||||
var encodingTable = map[rune][]bool{
|
||||
'0': []bool{true, false, true, false, true, false, false, true, true},
|
||||
'1': []bool{true, false, true, false, true, true, false, false, true},
|
||||
'2': []bool{true, false, true, false, false, true, false, true, true},
|
||||
'3': []bool{true, true, false, false, true, false, true, false, true},
|
||||
'4': []bool{true, false, true, true, false, true, false, false, true},
|
||||
'5': []bool{true, true, false, true, false, true, false, false, true},
|
||||
'6': []bool{true, false, false, true, false, true, false, true, true},
|
||||
'7': []bool{true, false, false, true, false, true, true, false, true},
|
||||
'8': []bool{true, false, false, true, true, false, true, false, true},
|
||||
'9': []bool{true, true, false, true, false, false, true, false, true},
|
||||
'-': []bool{true, false, true, false, false, true, true, false, true},
|
||||
'$': []bool{true, false, true, true, false, false, true, false, true},
|
||||
':': []bool{true, true, false, true, false, true, true, false, true, true},
|
||||
'/': []bool{true, true, false, true, true, false, true, false, true, true},
|
||||
'.': []bool{true, true, false, true, true, false, true, true, false, true},
|
||||
'+': []bool{true, false, true, true, false, false, true, true, false, false, true, true},
|
||||
'A': []bool{true, false, true, true, false, false, true, false, false, true},
|
||||
'B': []bool{true, false, true, false, false, true, false, false, true, true},
|
||||
'C': []bool{true, false, false, true, false, false, true, false, true, true},
|
||||
'D': []bool{true, false, true, false, false, true, true, false, false, true},
|
||||
}
|
||||
|
||||
// Encode creates a codabar barcode for the given content
|
||||
func Encode(content string) (barcode.Barcode, error) {
|
||||
checkValid, _ := regexp.Compile(`[ABCD][0123456789\-\$\:/\.\+]*[ABCD]$`)
|
||||
if content == "!" || checkValid.ReplaceAllString(content, "!") != "!" {
|
||||
return nil, fmt.Errorf("can not encode \"%s\"", content)
|
||||
}
|
||||
resBits := new(utils.BitList)
|
||||
for i, r := range content {
|
||||
if i > 0 {
|
||||
resBits.AddBit(false)
|
||||
}
|
||||
resBits.AddBit(encodingTable[r]...)
|
||||
}
|
||||
return utils.New1DCode(barcode.TypeCodabar, content, resBits), nil
|
||||
}
|
Reference in New Issue
Block a user