⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamatrix.java

📁 著名IDAutomation公司的JAVA条码控件源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    {
        return rotate;
    }

    public void setProcessTilde(boolean flag)
    {
        processTilde = flag;
        reBuild = true;
        invalidate();
    }

    public boolean getProcessTilde()
    {
        return processTilde;
    }

    public void setEncodingMode(int i)
    {
        encoding = i;
        reBuild = true;
        invalidate();
    }

    public int getEncodingMode()
    {
        return encoding;
    }

    public void setPreferredFormat(int i)
    {
        preferredFormat = i;
        reBuild = true;
        invalidate();
    }

    public int getPreferredFormat()
    {
        return preferredFormat;
    }

    private int C0(int i, int j)
    {
        int k = (149 * j) % 255;
        k++;
        int l = i + k;
        if(l <= 255)
            return l;
        else
            return l - 256;
    }

    private boolean C1(int i)
    {
        return i >= 48 && i <= 57;
    }

    private void C2(int ai[], int ai1[], int i, int j, int k)
    {
        for(int l = 0; l < k; l++)
            ai1[j + l] = ai[i + l];

    }

    private int C3(int ai[], int i, int j, String as[])
    {
        double d = 0.0D;
        double d2 = 1.0D;
        double d3 = 1.0D;
        double d4 = 1.25D;
        int k = j;
        if(i != E_ASCII)
        {
            d = 1.0D;
            d2 = 2D;
            d3 = 2D;
            d4 = 2.25D;
        }
        if(i == E_C40)
            d2 = 0.0D;
        if(i == E_TEXT)
            d3 = 0.0D;
        if(i == E_BASE256)
            d4 = 0.0D;
        for(; j < ai.length; j++)
        {
            char c = (char)ai[j];
            if(C1(c))
                d += 0.5D;
            else
            if(c > '\177')
                d = Math.round(d) + 2L;
            else
                d = Math.round(d) + 1L;
            if(C1[c].length == 1)
                d2 += 0.66000000000000003D;
            else
            if(c > '\177')
                d2 += 2.6600000000000001D;
            else
                d2 += 1.3300000000000001D;
            char c1 = c;
            String s = "" + c;
            if(c >= 'A' && c <= 'Z')
                c1 = s.toLowerCase().charAt(0);
            if(c >= 'a' && c <= 'z')
                c1 = s.toUpperCase().charAt(0);
            if(C1[c1].length == 1)
                d3 += 0.66000000000000003D;
            else
            if(c1 > '\177')
                d3 += 2.6600000000000001D;
            else
                d3 += 1.3300000000000001D;
            d4++;
            if(as[j] != null)
                return E_ASCII;
            if(j - k >= 4)
            {
                if(d + 1.0D <= d2 && d + 1.0D <= d3 && d + 1.0D <= d4)
                    return E_ASCII;
                if(d4 + 1.0D <= d)
                    return E_BASE256;
                if(d4 + 1.0D < d3 && d4 + 1.0D < d2)
                    return E_BASE256;
                if(d3 + 1.0D < d && d3 + 1.0D < d2 && d3 + 1.0D < d4)
                    return E_TEXT;
                if(d2 + 1.0D < d && d2 + 1.0D < d3 && d2 + 1.0D < d4)
                    return E_C40;
            }
        }

        d = Math.round(d);
        d2 = Math.round(d2);
        d3 = Math.round(d3);
        d4 = Math.round(d4);
        if(d <= d2 && d <= d3 && d <= d4)
            return E_ASCII;
        if(d3 < d && d3 < d2 && d3 < d4)
            return E_TEXT;
        if(d4 < d && d4 < d3 && d4 < d2)
            return E_BASE256;
        else
            return E_C40;
    }

    private int C4(int i, int ai[], int ai1[], String as[])
    {
        int ai2[] = new int[6000];
        int ai3[] = new int[6000];
        boolean flag = false;
        int j1 = 0;
        int k1 = E_ASCII;
        int ai4[] = new int[1];
        int ai5[] = new int[1];
        int l2 = E_ASCII;
        String as1[] = new String[10];
        for(int i3 = 0; i3 < as1.length; i3++)
            as1[i3] = null;

        int j3 = 0;
        currentEncoding = E_ASCII;
        while(j3 < i)
        {
            while(currentEncoding == E_ASCII && j3 < i)
            {
                boolean flag1 = false;
                if(j3 + 1 < i && C1(ai[j3]) && C1(ai[j3 + 1]))
                {
                    if(l2 != E_ASCII)
                        ai1[j1++] = 254;
                    ai2[0] = ai[j3];
                    ai2[1] = ai[j3 + 1];
                    int j = CE(2, ai2, ai3, as1);
                    C2(ai3, ai1, 0, j1, j);
                    j1 += j;
                    j3++;
                    j3++;
                    flag1 = true;
                    l2 = E_ASCII;
                }
                if(!flag1)
                {
                    int l1 = C3(ai, currentEncoding, j3, as);
                    if(l1 != E_ASCII)
                    {
                        l2 = currentEncoding;
                        currentEncoding = l1;
                    }
                }
                if(!flag1 && currentEncoding == E_ASCII)
                {
                    if(l2 != E_ASCII)
                        ai1[j1++] = 254;
                    ai2[0] = ai[j3];
                    as1[0] = as[j3];
                    int k = CE(1, ai2, ai3, as1);
                    as1[0] = null;
                    C2(ai3, ai1, 0, j1, k);
                    j1 += k;
                    j3++;
                    l2 = E_ASCII;
                }
            }
            int i2;
            for(; currentEncoding == E_C40 && j3 < i; currentEncoding = i2)
            {
                ai4[0] = j3;
                int l = C6(i, ai4, ai, ai3, false, l2 != E_C40, true);
                j3 = ai4[0];
                C2(ai3, ai1, 0, j1, l);
                j1 += l;
                i2 = C3(ai, currentEncoding, j3, as);
                l2 = currentEncoding;
            }

            int j2;
            for(; currentEncoding == E_TEXT && j3 < i; currentEncoding = j2)
            {
                ai4[0] = j3;
                int i1 = C6(i, ai4, ai, ai3, true, l2 != E_TEXT, true);
                j3 = ai4[0];
                C2(ai3, ai1, 0, j1, i1);
                j1 += i1;
                j2 = C3(ai, currentEncoding, j3, as);
                l2 = currentEncoding;
            }

            if(currentEncoding == E_BASE256)
            {
                ai4[0] = j3;
                ai5[0] = j1;
                C5(i, ai4, ai, ai5, ai1, true, as);
                j3 = ai4[0];
                j1 = ai5[0];
                int k2 = C3(ai, currentEncoding, j3, as);
                l2 = currentEncoding;
                currentEncoding = k2;
            }
        }
        return j1;
    }

    private int C5(int i, int ai[], int ai1[], int ai2[], int ai3[], boolean flag, String as[])
    {
        int j = 0;
        int ai4[] = new int[6000];
        int k = ai2[0];
        int l = ai2[0];
        boolean flag1 = false;
        int j1 = 0;
        for(j1 = ai[0]; j1 < i; j1++)
        {
            ai4[j] = ai1[j1];
            j++;
            int i1 = j1 + 1;
            if(flag && C3(ai1, E_BASE256, i1, as) != E_BASE256)
                break;
        }

        ai[0] = j1;
        ai3[l++] = 231;
        if(j < 250)
        {
            ai3[l] = C0(j, l + 1);
            l++;
        } else
        {
            ai3[l] = C0(249 + (i - i % 250) / 250, l + 1);
            l++;
            ai3[l] = C0(i % 250, l + 1);
            l++;
        }
        for(int k1 = 0; k1 < j; k1++)
        {
            ai3[l] = C0(ai4[k1], l + 1);
            l++;
        }

        ai2[0] = l;
        return l;
    }

    private int C6(int i, int ai[], int ai1[], int ai2[], boolean flag, boolean flag1, boolean flag2)
    {
        int j = 0;
        int k = 0;
        int ai3[] = {
            0, 0, 0
        };
        boolean flag3 = false;
        String as[] = new String[10];
        for(int i1 = 0; i1 < as.length; i1++)
            as[i1] = null;

        if(flag1)
            if(flag)
                ai2[j++] = 239;
            else
                ai2[j++] = 230;
        for(int j1 = ai[0]; j1 < i; j1++)
        {
            int l = ai1[j1];
            if(flag)
            {
                String s = "" + (char)l;
                if(l >= 97 && l <= 122)
                    s = s.toUpperCase();
                if(l >= 65 && l <= 90)
                    s = s.toLowerCase();
                l = s.charAt(0);
            }
            int ai4[] = C1[l];
            for(int l1 = 0; l1 < ai4.length; l1++)
            {
                ai3[k++] = ai4[l1];
                if(k == 3)
                {
                    int i2 = ai3[0] * 1600 + ai3[1] * 40 + ai3[2] + 1;
                    ai2[j++] = i2 / 256;
                    ai2[j++] = i2 % 256;
                    k = 0;
                }
            }

            if(flag2 && k == 0)
            {
                C49rest = k;
                ai[0] = j1 + 1;
                if(ai[0] == i)
                    ai2[j++] = 254;
                return j;
            }
        }

        ai[0] = i;
        if(k > 0)
        {
            if(k == 1)
            {
                ai2[j++] = 254;
                ai2[j++] = ai1[i - 1] + 1;
                return j;
            }
            if(k == 2)
            {
                ai3[2] = 0;
                int k1 = ai3[0] * 1600 + ai3[1] * 40 + ai3[2] + 1;
                ai2[j++] = k1 / 256;
                ai2[j++] = k1 % 256;
                ai2[j++] = 254;
                C49rest = k;
                return j;
            }
        } else
        {
            ai2[j++] = 254;
        }
        C49rest = k;
        return j;
    }

    protected void paintBasis(Graphics g)
    {
        if(marginCM != 0.0D)
            margin = (int)(marginCM * (double)resolution);
        if(margin < 1)
            margin = 1;
        if(X != 0.0D)
            dotPixels = (int)(X * (double)resolution);
        if(dotPixels < 1)
            dotPixels = 1;
        topMarginPixels = margin;
        leftMarginPixels = margin;
        if(code.length() == 0)
            return;
        g.setColor(backColor);
        int i = getSize().width;
        int j = getSize().height;
        if(rotate == 0 || rotate == 180)
            g.fillRect(0, 0, i, j);
        else
            g.fillRect(0, 0, j, i);
        if(bitmap == null || reBuild)
            CA();
        if(bitmap == null)
            return;
        int k = margin;
        int l = margin;
        for(int i1 = 0; i1 < rows; i1++)
        {
            for(int j1 = 0; j1 < cols; j1++)
                if(bitmap[j1][i1] != 0)
                    C7(g, k + dotPixels * j1, l + dotPixels * i1, dotPixels, barColor);
                else
                    C7(g, k + dotPixels * j1, l + dotPixels * i1, dotPixels, backColor);

        }

        currentX = dotPixels * cols + margin;
        currentY = dotPixels * rows + margin;
        if(rotate == 0 || rotate == 180)
        {
            pHeight = currentY + margin;
            pWidth = currentX + margin;
        } else
        {
            pWidth = currentY + margin;
            pHeight = currentX + margin;
        }
        if(autoSize)
            setSize(pWidth, pHeight);
        Calendar calendar = Calendar.getInstance();
        int k1 = calendar.get(14);
        if(k1 < 400)
        {
            g.setFont(new Font("Arial", 0, 11));
            int l1 = g.getFontMetrics().getHeight();
            g.setColor(backColor);
            g.fillRect(leftMarginPixels + 6, 0, 125, l1 + 3);
            g.setColor(barColor);
            g.drawString("IDAutomation DEMO", leftMarginPixels + 10, l1 + 1);
        }
    }

    private void C7(Graphics g, int i, int j, int k, Color color)
    {
        g.setColor(color);
        g.fillRect(i, j, k, k);
    }

    private int C8(int i, int j)
    {
        int k = (149 * j) % 253;
        k++;
        int l = i + k;
        if(l <= 254)
            return l;
        else
            return l - 254;
    }

    private String C9(String s, String as[])
    {
        boolean flag = false;
        int k = s.length();
        String s1 = "";
        boolean flag1 = false;
        for(int i = 0; i < k; i++)
        {
            int j = s.charAt(i);
            if(j == 126)
            {
                if(i < k - 1)
                {
                    char c = s.charAt(i + 1);
                    if(c >= '@' && c <= 'Z')
                    {
                        i++;
                        s1 = s1 + (char)(c - 64);
                    }
                    if(c == '~')
                    {
                        s1 = s1 + '~';
                        i++;
                    }
                    if(c == '1')
                    {
                        if(s1.length() == 0 || s1.length() == 1 || s1.length() == 4 || s1.length() == 5)
                        {
                            as[s1.length()] = "";
                            s1 = s1 + '\350';
                        } else
                        {
                            s1 = s1 + '\035';
                        }
                        i++;
                    }
                    if(c == '2' && i < k - 4)
                    {
                        as[s1.length()] = "" + s.charAt(i + 2) + s.charAt(i + 3) + s.charAt(i + 4);
                        s1 = s1 + '\351';
                        i += 4;
                    }
                    if(c == '3' && s1.length() == 0)
                    {
                        as[s1.length()] = "";
                        s1 = s1 + '\352';
                        i++;
                    }
                    if(c == '5' && s1.length() == 0)
                    {
                        as[s1.length()] = "";
                        s1 = s1 + '\354';
                        i++;
                    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -