亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pdf417lib.java

?? pdf417二維條碼處理。包括顯示和識別。
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* * Copyright 2003-2005 by Paulo Soares. * * The contents of this file are subject to the Mozilla Public License Version 1.1 * (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.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the License. * * The Original Code is 'pdf417lib, a library to generate the bidimensional barcode PDF417'. * * The Initial Developer of the Original Code is Paulo Soares. Portions created by * the Initial Developer are Copyright (C) 2003 by Paulo Soares. * All Rights Reserved. * * Contributor(s): all the names of the contributors are added in the source code * where applicable. * * Alternatively, the contents of this file may be used under the terms of the * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the * provisions of LGPL are applicable instead of those above.  If you wish to * allow use of your version of this file only under the terms of the LGPL * License and not to allow others to use your version of this file under * the MPL, indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by the LGPL. * If you do not delete the provisions above, a recipient may use your version * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE. * * This library is free software; you can redistribute it and/or modify it * under the terms of the MPL as stated above or under the terms of the GNU * Library General Public License as published by the Free Software Foundation; * either version 2 of the License, or any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more * details. * * If you didn't download this code from the following link, you should check if * you aren't using an obsolete version: * http://sourceforge.net/projects/pdf417lib * This code is also used in iText (http://www.lowagie.com/iText) */import java.util.ArrayList;import java.io.UnsupportedEncodingException;/** Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed * and variable sizes, automatic and manual error levels, raw codeword input, * codeword size optimization and bitmap inversion. The output can * be a CCITT G4 <CODE>Image</CODE> or a raw bitmap. * @author Paulo Soares (psoares@consiste.pt) */public class Pdf417lib {    /** Auto-size is made based on <CODE>aspectRatio</CODE> and <CODE>yHeight</CODE>. */        public static final int PDF417_USE_ASPECT_RATIO = 0;    /** The size of the barcode will be at least <CODE>codeColumns*codeRows</CODE>. */        public static final int PDF417_FIXED_RECTANGLE = 1;    /** The size will be at least <CODE>codeColumns</CODE>     * with a variable number of <CODE>codeRows</CODE>.     */        public static final int PDF417_FIXED_COLUMNS = 2;    /** The size will be at least <CODE>codeRows</CODE>     * with a variable number of <CODE>codeColumns</CODE>.     */        public static final int PDF417_FIXED_ROWS = 4;    /** The error level correction is set automatically according     * to ISO 15438 recomendations.     */        public static final int PDF417_AUTO_ERROR_LEVEL = 0;    /** The error level correction is set by the user. It can be 0 to 8. */        public static final int PDF417_USE_ERROR_LEVEL = 16;    /** No <CODE>text</CODE> interpretation is done and the content of <CODE>codewords</CODE>     * is used directly.     */        public static final int PDF417_USE_RAW_CODEWORDS = 64;    /** Inverts the output bits of the raw bitmap that is normally     * bit one for black. It has only effect for the raw bitmap.     */        public static final int PDF417_INVERT_BITMAP = 128;        protected int bitPtr;    protected int cwPtr;    protected SegmentList segmentList;        /** Creates a new <CODE>BarcodePDF417</CODE> with the default settings. */        public Pdf417lib() {        setDefaultParameters();    }        protected boolean checkSegmentType(Segment segment, char type) {        if (segment == null)            return false;        return segment.type == type;    }        protected int getSegmentLength(Segment segment) {        if (segment == null)            return 0;        return segment.end - segment.start;    }        /** Set the default settings that correspond to <CODE>PDF417_USE_ASPECT_RATIO</CODE>     * and <CODE>PDF417_AUTO_ERROR_LEVEL</CODE>.     */        public void setDefaultParameters() {        options = 0;        outBits = null;        text = new byte[0];        yHeight = 3;        aspectRatio = 0.5f;    }    protected void outCodeword17(int codeword) {        int bytePtr = bitPtr / 8;        int bit = bitPtr - bytePtr * 8;        outBits[bytePtr++] |= codeword >> (9 + bit);        outBits[bytePtr++] |= codeword >> (1 + bit);        codeword <<= 8;        outBits[bytePtr] |= codeword >> (1 + bit);        bitPtr += 17;    }    protected void outCodeword18(int codeword) {        int bytePtr = bitPtr / 8;        int bit = bitPtr - bytePtr * 8;        outBits[bytePtr++] |= codeword >> (10 + bit);        outBits[bytePtr++] |= codeword >> (2 + bit);        codeword <<= 8;        outBits[bytePtr] |= codeword >> (2 + bit);        if (bit == 7)            outBits[++bytePtr] |= 0x80;        bitPtr += 18;    }    protected void outCodeword(int codeword) {        outCodeword17(codeword);    }    protected void outStopPattern() {        outCodeword18(STOP_PATTERN);    }    protected void outStartPattern() {        outCodeword17(START_PATTERN);    }    protected void outPaintCode() {        int codePtr = 0;        bitColumns = START_CODE_SIZE * (codeColumns + 3) + STOP_SIZE;        int lenBits = ((bitColumns - 1) / 8 + 1) * codeRows;        outBits = new byte[lenBits];        for (int row = 0; row < codeRows; ++row) {            bitPtr = ((bitColumns - 1) / 8 + 1) * 8 * row;            int rowMod = row % 3;            int cluster[] = CLUSTERS[rowMod];            outStartPattern();            int edge = 0;            switch (rowMod) {            case 0:                edge = 30 * (row / 3) + ((codeRows - 1) / 3);                break;            case 1:                edge = 30 * (row / 3) + errorLevel * 3 + ((codeRows - 1) % 3);                break;            default:                edge = 30 * (row / 3) + codeColumns - 1;                break;            }            outCodeword(cluster[edge]);            for (int column = 0; column < codeColumns; ++column) {                outCodeword(cluster[codewords[codePtr++]]);            }            switch (rowMod) {            case 0:                edge = 30 * (row / 3) + codeColumns - 1;                break;            case 1:                edge = 30 * (row / 3) + ((codeRows - 1) / 3);                break;            default:                edge = 30 * (row / 3) + errorLevel * 3 + ((codeRows - 1) % 3);                break;            }            outCodeword(cluster[edge]);            outStopPattern();        }        if ((options & PDF417_INVERT_BITMAP) != 0) {            for (int k = 0; k < outBits.length; ++k)                outBits[k] ^= 0xff;        }    }    protected void calculateErrorCorrection(int dest) {        if (errorLevel < 0 || errorLevel > 8)            errorLevel = 0;        int A[] = ERROR_LEVEL[errorLevel];        int Alength = 2 << errorLevel;        for (int k = 0; k < Alength; ++k)            codewords[dest + k] = 0;        int lastE = Alength - 1;        for (int k = 0; k < lenCodewords; ++k) {            int t1 = codewords[k] + codewords[dest];            for (int e = 0; e <= lastE; ++e) {                int t2 = (t1 * A[lastE - e]) % MOD;                int t3 = MOD - t2;                codewords[dest + e] = ((e == lastE ? 0 : codewords[dest + e + 1]) + t3) % MOD;            }        }        for (int k = 0; k < Alength; ++k)            codewords[dest + k] = (MOD - codewords[dest + k]) % MOD;    }        protected int getTextTypeAndValue(int maxLength, int idx) {        if (idx >= maxLength)            return 0;        char c = (char)(text[idx] & 0xff);        if (c >= 'A' && c <= 'Z')            return (ALPHA + c - 'A');        if (c >= 'a' && c <= 'z')            return (LOWER + c - 'a');        if (c == ' ')            return (ALPHA + LOWER + MIXED + SPACE);        int ms = MIXED_SET.indexOf(c);        int ps = PUNCTUATION_SET.indexOf(c);        if (ms < 0 && ps < 0)            return (ISBYTE + c);        if (ms == ps)            return (MIXED + PUNCTUATION + ms);        if (ms >= 0)            return (MIXED + ms);        return (PUNCTUATION + ps);    }        protected void textCompaction(int start, int length) {        int dest[] = new int[ABSOLUTE_MAX_TEXT_SIZE * 2];        int mode = ALPHA;        int ptr = 0;        int fullBytes = 0;        int v = 0;        int k;        int size;        length += start;        for (k = start; k < length; ++k) {            v = getTextTypeAndValue(length, k);            if ((v & mode) != 0) {                dest[ptr++] = v & 0xff;                continue;            }            if ((v & ISBYTE) != 0) {                if ((ptr & 1) != 0) {                    dest[ptr++] = (mode & PUNCTUATION) != 0 ? PAL : PS;                    mode = (mode & PUNCTUATION) != 0 ? ALPHA : mode;                }                dest[ptr++] = BYTESHIFT;                dest[ptr++] = v & 0xff;                fullBytes += 2;                continue;            }            switch (mode) {            case ALPHA:                if ((v & LOWER) != 0) {                    dest[ptr++] = LL;                    dest[ptr++] = v & 0xff;                    mode = LOWER;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区一区三区| 岛国精品在线观看| 亚洲色图丝袜美腿| 国产精品亲子乱子伦xxxx裸| 久久久蜜桃精品| 久久久久一区二区三区四区| 国产日韩影视精品| 国产精品你懂的在线| 综合婷婷亚洲小说| 亚洲精品美国一| 亚洲成人av电影| 美国十次了思思久久精品导航| 日产精品久久久久久久性色| 男女男精品视频网| 精品午夜一区二区三区在线观看| 久久99蜜桃精品| 风间由美一区二区三区在线观看 | 欧美日韩成人激情| 欧美乱妇一区二区三区不卡视频| 欧美日韩在线不卡| 欧美一级搡bbbb搡bbbb| 精品美女被调教视频大全网站| 久久久久97国产精华液好用吗| 国产欧美精品国产国产专区| 成人欧美一区二区三区视频网页 | 色婷婷av一区| 欧美群妇大交群的观看方式| 精品国一区二区三区| 国产亚洲一二三区| 亚洲欧美日韩成人高清在线一区| 亚洲图片欧美一区| 久久99精品国产91久久来源| voyeur盗摄精品| 欧美日本高清视频在线观看| 日韩免费成人网| 亚洲卡通动漫在线| 久久精品免费观看| 一本色道久久综合亚洲精品按摩| 欧美三级日韩三级| 久久精品亚洲麻豆av一区二区| 最新国产精品久久精品| 日韩高清国产一区在线| 国产麻豆日韩欧美久久| 91久久奴性调教| 久久综合av免费| 一区二区三区精密机械公司| 久久国产尿小便嘘嘘| 色综合久久久久| 国产日产欧美一区二区三区| 亚洲综合在线电影| 五月婷婷激情综合网| 久久精品av麻豆的观看方式| wwwwxxxxx欧美| 国产一区二区调教| 又紧又大又爽精品一区二区| 欧美日本乱大交xxxxx| 18成人在线观看| 欧美主播一区二区三区| 欧美videos中文字幕| 亚洲狼人国产精品| 国产91精品一区二区麻豆亚洲| 欧美精品xxxxbbbb| 亚洲精品视频在线观看免费| 国产福利一区在线| 亚洲精品一区二区三区香蕉| 舔着乳尖日韩一区| 在线一区二区三区四区| 国产精品久久久久久久久久免费看 | 成人精品高清在线| 日韩欧美成人一区二区| 午夜精品一区在线观看| 欧美性大战久久久久久久| 国产精品沙发午睡系列990531| 韩国毛片一区二区三区| 日韩亚洲欧美综合| 免费高清视频精品| 7777精品久久久大香线蕉| 亚洲妇女屁股眼交7| 91高清视频免费看| 一区二区高清在线| 欧美日韩三级一区二区| 亚洲成人免费在线观看| 欧美精选一区二区| 视频一区二区中文字幕| 欧美精品自拍偷拍动漫精品| 天天操天天综合网| 日韩午夜电影av| 精品一区二区三区免费| 精品久久久网站| 成人午夜在线播放| 亚洲欧美在线观看| 欧美日韩亚洲国产综合| 日韩av电影天堂| 2020国产精品| 国产成人鲁色资源国产91色综 | 3d动漫精品啪啪| 日韩国产在线观看一区| 日韩精品一区二区在线观看| 国产精品亚洲一区二区三区在线| 亚洲国产成人一区二区三区| 99久久99久久精品免费看蜜桃 | 欧美视频第二页| 日本色综合中文字幕| www成人在线观看| av成人免费在线观看| 亚洲综合激情小说| 91精品国产乱| 成人免费看的视频| 亚洲va天堂va国产va久| 久久青草国产手机看片福利盒子| 粉嫩av亚洲一区二区图片| 亚洲黄色小说网站| 欧美tickling挠脚心丨vk| 成人黄色软件下载| 舔着乳尖日韩一区| 国产精品久久久久久久久搜平片 | 日本大胆欧美人术艺术动态| 国产欧美精品一区二区色综合| 99国产精品久久久久久久久久| 丝瓜av网站精品一区二区| 久久精品亚洲麻豆av一区二区 | 国产欧美精品在线观看| 欧美日韩一区三区四区| 国产91在线|亚洲| 日韩一区欧美二区| 亚洲欧美一区二区三区孕妇| 日韩欧美高清一区| 色88888久久久久久影院按摩| 久久91精品久久久久久秒播| 亚洲综合色自拍一区| 久久精品亚洲精品国产欧美kt∨| 欧美在线观看视频一区二区三区| 韩国一区二区在线观看| 一区二区三区电影在线播| 国产日韩影视精品| 精品国免费一区二区三区| 欧美日韩精品一区视频| 91免费精品国自产拍在线不卡| 久久电影网电视剧免费观看| 亚洲综合在线五月| 亚洲免费观看视频| 国产精品久久久久久久浪潮网站| 精品久久人人做人人爰| 欧美一区二区日韩| 91精品国产综合久久久蜜臀图片| 色一情一乱一乱一91av| 一本久久a久久免费精品不卡| 国产.欧美.日韩| 风间由美性色一区二区三区| 精品亚洲国产成人av制服丝袜| 免费成人在线视频观看| 日精品一区二区| 日本va欧美va精品| 青青草一区二区三区| 日本视频在线一区| 捆绑调教美女网站视频一区| 日韩中文字幕不卡| 麻豆精品精品国产自在97香蕉| 三级影片在线观看欧美日韩一区二区 | 日韩一区二区三区电影在线观看| 在线视频国内自拍亚洲视频| 欧美亚州韩日在线看免费版国语版| 99精品视频一区| 一本大道久久a久久综合婷婷| bt7086福利一区国产| 在线亚洲一区观看| 欧美日韩国产中文| 精品久久久三级丝袜| 久久久av毛片精品| 亚洲日穴在线视频| 亚洲成a人片在线不卡一二三区| 亚洲18色成人| 狠狠色丁香久久婷婷综合丁香| 国产一本一道久久香蕉| 国产成人在线色| 一本一道久久a久久精品| 欧美日韩久久不卡| 久久久久久一级片| 亚洲乱码国产乱码精品精小说 | 国产成人h网站| 国产一区二区电影| 成人深夜在线观看| 色婷婷久久久亚洲一区二区三区| 成人综合婷婷国产精品久久| 激情综合色播激情啊| 成人综合在线视频| 在线观看精品一区| 亚洲国产精品二十页| 欧美剧在线免费观看网站| 国产成人高清在线| 奇米一区二区三区| 亚洲精品成人少妇| 国产精品毛片大码女人| 久久影院电视剧免费观看| 7777精品伊人久久久大香线蕉完整版 | 欧美唯美清纯偷拍| 久久99精品国产麻豆婷婷| 亚洲人成网站在线| 国产人成一区二区三区影院| 欧美日韩国产影片|