該算法是這樣的:
Peek at the first character.
If it is ']',
If string does not start with ']C1' or ']e0' or ']d2' or ']Q3',
Not a GS1 barcode.
Stop.
Consume the caracters.
Else if it is <GS>,
Consume character.
Else,
No symbology identifier, assume GS1.
While not end of input,
Read the first two digits.
If they are in the table of valid codes,
Look up the length of the AI-code.
Read the rest of the code.
Look up the length of the field.
If it is variable-length,
Read until the next <FNC1> or <GS>.
Else,
Read the rest if the field.
Peek at the next character.
If it is <FNC1> or <GS>, consume it.
Save the read field.
Else,
Error: Invalid AI
在QR碼二進制數據被編碼爲4位令牌,帶有嵌入的數據。
0111 -> Start Extended Channel Interpretation (ECI) Mode (special encodings).
0001, 0010, 0100, 1000 -> start numeric, alphanumeric, raw 8-bit, kanji encoded data.
0011 -> structured append (combine two or more QR Codes to one data-stream).
0101 -> FNC1 initial position.
1001 -> FNC1 other positions.
0000 -> End of stream (can be omitted if not enough space).
編碼規範出現後,數據長度,其次是實際數據。數據位的含義取決於使用的編碼。在數據塊之間,您可以擠壓FNC1字符。
QR碼規範(ISO/IEC 18004)不幸的是費錢(210法郎)。雖然你可能會在網上找到一些海盜版本。
要創建GS1 QR代碼,你需要能夠在數據指定FNC1字符。庫應該識別「] Q3」前綴和GS字符,或允許您通過其他方法編寫FNC1令牌。
如果你有某種方式來寫FNC1字符,你可以編碼GS1數據如下:
Write initial FNC1.
For each field,
Write the AI-code as decimal digits.
Write field data.
If the code is a variable-length field,
If not the last field,
Write FNC1 to terminate the field.
如果可能的話,你應該命令字段,例如,一個可變長度字段排在最後。
正如Terry Burton在評論中指出的那樣; GS1 QR碼中的FNC1符號可以按字母數字數據編碼爲%
,在字節模式下可編碼爲GS。要編碼實際百分比符號,請將其編寫爲%%
。
要編碼(01) 04912345123459 (15) 970331 (30) 128 (10) ABC123
,首先將其組合成數據字符串01049123451234591597033130128%10ABC123
(%
指示符是編碼的FNC1符號)。然後,該字符串被寫入作爲
0101 - Initial FNC1, GS1 mode indicator
0001 - QR numeric mode
0000011101 - Data length (29)
<data bits for "01049123451234591597033130128">
0010 - QR alphanumeric mode
000001001 - Data length (9)
<data bits for "%10ABC123">
(來自ISO 18004實施例:2006規格)
GS1意味着很多事情。您對哪種格式和內容感興趣? zxing已經支持很多已經重新貼上「GS1條形碼」的內容。 –
@SeanOwen我不是指特殊的GS1 DataBars。我在說「GS1 QR」。要明白我的意思,打開Zint並在QR選擇GS-1數據模式下。 –
遊戲後期,但我會很感興趣的是瞭解postscriptbarcode的「輸出質量如此之好」。該庫生成的矢量圖形在適當縮放時可以保持完美的質量。 –