/*
* Copyright 2006 Jeremias Maerki.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: PDF417Constants.java,v 1.2 2007/03/23 21:16:16 jmaerki Exp $ */
package org.krysalis.barcode4j.impl.pdf417;
/**
* Constants for PDF417 barcodes.
*
* @version $Id: PDF417Constants.java,v 1.2 2007/03/23 21:16:16 jmaerki Exp $
*/
public interface PDF417Constants {
/** code for Text compaction */
int TEXT_COMPACTION = 0;
/** code for Byte compaction */
int BYTE_COMPACTION = 1;
/** code for Numeric compaction */
int NUMERIC_COMPACTION = 2;
/** Text compaction submode Alpha */
int SUBMODE_ALPHA = 0;
/** Text compaction submode Lower */
int SUBMODE_LOWER = 1;
/** Text compaction submode Mixed */
int SUBMODE_MIXED = 2;
/** Text compaction submode Punctuation */
int SUBMODE_PUNCTUATION = 3;
/** mode latch to Text Compaction mode */
int LATCH_TO_TEXT = 900;
/** mode latch to Byte Compaction mode (number of characters NOT a multiple of 6) */
int LATCH_TO_BYTE_PADDED = 901;
/** mode latch to Numeric Compaction mode */
int LATCH_TO_NUMERIC = 902;
/** mode shift to Byte Compaction mode */
int SHIFT_TO_BYTE = 913;
/** reader initialisation */
int READER_INITIALISATION = 921;
/** terminator codeword for Macro PDF control block */
int MACRO_PDF_TERMINATOR = 922;
/** sequence tag to identify the beginning of optional fields in the Macro PDF control block */
int MACRO_PDF_OPTIONAL_FIELD_START = 923;
/** mode latch to Byte Compaction mode (number of characters a multiple of 6) */
int LATCH_TO_BYTE = 924;
/** identifier for a user defined Extended Channel Interpretation (ECI) */
int ECI_USER_DEFINED = 925;
/** identifier for a general purpose ECO format */
int ECI_GENERAL_PURPOSE = 926;
/** identifier for an ECI of a character set of code page */
int ECI_CHARSET = 927;
/** Macro marker codeword to indicate the beginning of a Macro PDF Control Block */
int MACRO_PDF_CONTROL_BLOCK_START = 928;
/** Padding character */
int PAD = 900;
/** Raw code table for text compaction Mixed sub-mode */
byte[] TEXT_MIXED_RAW = {
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 38, 13, 9, 44, 58,
35, 45, 46, 36, 47, 43, 37, 42, 61, 94, 0, 32, 0, 0, 0};
/** Raw code table for text compaction: Punctuation sub-mode */
byte[] TEXT_PUNCTUATION_RAW = {
59, 60, 62, 64, 91, 92, 93, 95, 96, 126, 33, 13, 9, 44, 58,
10, 45, 46, 36, 47, 34, 124, 42, 40, 41, 63, 123, 125, 39, 0};
/**
* Tables of coefficients for calculating error correction words
* (see annex F, ISO/IEC 15438:2001(E))
*/
int[][] EC_COEFFICIENTS = {
{27, 917},
{522, 568, 723, 809},
{237, 308, 436, 284, 646, 653, 428, 379},
{274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295,
42, 176, 65},
{361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687,
284, 193, 517, 273, 494, 263, 147, 593, 800, 571, 320, 803,
133, 231, 390, 685, 330, 63, 410},
{539, 422, 6, 93, 862, 771, 453, 106, 610, 287, 107, 505, 733,
877, 381, 612, 723, 476, 462, 172, 430, 609, 858, 822, 543,
376, 511, 400, 672, 762, 283, 184, 440, 35, 519, 31, 460,
594, 225, 535, 517, 352, 605, 158, 651, 201, 488, 502, 648,
733, 717, 83, 404, 97, 280, 771, 840, 629, 4, 381, 843,
623, 264, 543},
{521, 310, 864, 547, 858, 580, 296, 379, 53, 779, 897, 444, 400,
925, 749, 415, 822, 93, 217, 208, 928, 244, 583, 620, 246,
148, 447, 631, 292, 908, 490, 704, 516, 258, 457, 907, 594,
723, 674, 292, 272, 96, 684, 432, 686, 606, 860, 569, 193,
219, 129, 186, 236, 287, 192, 775, 278, 173, 40, 379, 712,
463, 646, 776, 171, 491, 297, 763, 156, 732, 95, 270, 447,
90, 507, 48, 228, 821, 808, 898, 784, 663, 627, 378, 382,
262, 380, 602, 754, 336, 89, 614, 87, 432, 670, 616, 157,
374, 242, 726, 600, 269, 375, 898, 845, 454, 354, 130, 814,
587, 804, 34, 211, 330, 539, 297, 827, 865, 37, 517, 834,
315, 550, 86, 801, 4, 108, 539},
{524, 894, 75, 766, 882, 857, 74, 204, 82, 586, 708, 250, 905,
786, 138, 720, 858, 194, 311, 913, 275, 190, 375, 850, 438,
733, 194, 280, 201, 280, 828, 757, 710, 814, 919, 89, 68,
569, 11, 204, 796, 605, 540, 913, 801, 700, 799, 137, 439,
418, 592, 668, 353, 859, 370, 694, 325, 240, 216, 257, 284,
549, 209, 884, 315, 70, 329, 793, 490, 274, 877, 162, 749,
812, 684, 461, 334, 376, 849, 521, 307, 291, 803, 712, 19,
358, 399, 908, 103, 511, 51, 8, 517, 225, 289, 470, 637,
731, 66, 255, 917, 269, 463, 830, 730, 433, 848, 585, 136,
538, 906, 90, 2, 290, 743, 199, 655, 903, 329, 49, 802,
580, 355, 588, 188, 462, 10, 134, 628, 320, 479, 130, 739,
71, 263, 318, 374, 601, 192, 605, 142, 673, 687, 234, 722,
384, 177, 752, 607, 640, 455, 193, 689, 707, 805, 641, 48,
60, 732, 621, 895, 544, 261, 852, 655, 309, 697, 755, 756,
60, 231, 773, 434, 421, 726, 528, 503, 118, 49, 795, 32,
144, 500, 238, 836, 394, 280, 566, 319, 9, 647, 550, 73,
914, 342, 126, 32, 681, 331, 792, 620, 60, 609, 441, 180,
791, 893, 754, 605, 383, 228, 749, 760, 213, 54, 297, 134,
54, 834, 299, 922, 191, 910, 532, 609, 829, 189, 20, 167,
29, 872, 449, 83, 402, 41, 656, 505, 579, 481, 173, 404,
251, 688, 95, 497, 555, 642, 543, 307, 159, 924, 558, 648,
55, 497, 10},
{352, 77, 373, 504, 35, 599, 428, 207, 409, 574, 118, 498, 285,
380, 350, 492, 197, 265, 920, 155, 914, 299, 229, 643, 294,
871, 306, 88, 87, 193, 352, 781, 846, 75, 327, 520, 435,
543, 203, 666, 249, 346, 781, 621, 640, 268, 794, 534, 539,
781, 408, 390, 644, 102, 476, 499, 290, 632, 545, 37, 858,
916, 552, 41, 542, 289, 122, 272, 383, 800, 485, 98, 752,
472, 761, 107, 784, 860, 658, 741, 290, 204, 681, 407, 855,
85, 99, 62, 482, 180, 20, 297, 451, 593, 913, 142, 808,
684, 287, 536, 561, 76, 653, 899, 729, 567, 744, 390, 513,
192, 516, 258, 240, 518, 794, 395, 768, 848, 51, 610, 384,
168, 190, 826, 328, 596, 786, 303, 570, 381, 415, 641, 156,
237, 151, 429, 531, 207, 676, 710, 89, 168, 304, 402, 40,
708, 575, 162, 864, 229, 65, 861, 841, 512, 164, 477, 221,
92, 358, 785, 288, 357, 850, 836, 827, 736, 707, 94, 8,
494, 114, 521, 2, 499, 851, 543, 152, 729, 771, 95, 248,
361, 578, 323, 856, 797, 289, 51, 684, 466, 533, 820, 669,
45, 902, 452, 167, 342, 244, 173, 35, 463, 651, 51, 699,
591, 452, 578, 37, 124, 298, 332, 552,
- 1
- 2
前往页