0

I have a problem with generating code128 inside servlet. Exception java.lang.ArrayIndexOutOfBoundsException: 2000

The problem is inside the for , but I don't understand how to solve it. Code:

        Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<>();
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        
        Code128Writer Code128Writer = new Code128Writer();
        BitMatrix byteMatrix = Code128Writer.encode(qrCodeText, BarcodeFormat.CODE_128, 500, size, hintMap);
        int matrixWidth = byteMatrix.getWidth();
        BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB);
        image.createGraphics();

        Graphics2D graphics = (Graphics2D) image.getGraphics();
        graphics.setColor(Color.WHITE);
        graphics.fillRect(0, 0, matrixWidth, matrixWidth);
        graphics.setColor(Color.BLACK);

        for (int i = 0; i < matrixWidth; i++) {
            for (int j = 0; j < matrixWidth; j++) {
                if (byteMatrix.get(i, j)) {
                    graphics.fillRect(i, j, 1, 1);
                }
            }
        }
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        ImageIO.write(image, "png", os);                         
        InputStream is = new ByteArrayInputStream(os.toByteArray());
        return is;
damnetime
  • 1
  • 3

0 Answers0