/** * Takes encoder, accounts for width/height, and retrieves bit matrix */ private static BitMatrix bitMatrixFromEncoder(PDF417 encoder, String contents, int errorCorrectionLevel, int width, int height, int margin) throws WriterException { encoder.generateBarcodeLogic(contents, errorCorrectionLevel); int aspectRatio = 4; byte[][] originalScale = encoder.getBarcodeMatrix().getScaledMatrix(1, aspectRatio); boolean rotated = false; if ((height > width) ^ (originalScale[0].length < originalScale.length)) { originalScale = rotateArray(originalScale); rotated = true; } int scaleX = width / originalScale[0].length; int scaleY = height / originalScale.length; int scale; if (scaleX < scaleY) { scale = scaleX; } else { scale = scaleY; } if (scale > 1) { byte[][] scaledMatrix = encoder.getBarcodeMatrix().getScaledMatrix(scale, scale * aspectRatio); if (rotated) { scaledMatrix = rotateArray(scaledMatrix); } return bitMatrixFrombitArray(scaledMatrix, margin); } return bitMatrixFrombitArray(originalScale, margin); }
public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); int margin = 30; int errorCorrectionLevel = 2; if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact(((Boolean) hints.get(EncodeHintType.PDF417_COMPACT)) .booleanValue()); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction((Compaction) hints.get(EncodeHintType.PDF417_COMPACTION)); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } if (hints.containsKey(EncodeHintType.MARGIN)) { margin = ((Number) hints.get(EncodeHintType.MARGIN)).intValue(); } if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { errorCorrectionLevel = ((Number) hints.get(EncodeHintType.ERROR_CORRECTION)) .intValue(); } if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { encoder.setEncoding(Charset.forName((String) hints.get(EncodeHintType .CHARACTER_SET))); } } return bitMatrixFromEncoder(encoder, contents, errorCorrectionLevel, width, height, margin); }
private static BitMatrix bitMatrixFromEncoder(PDF417 encoder, String contents, int errorCorrectionLevel, int width, int height, int margin) throws WriterException { int i; int scale; encoder.generateBarcodeLogic(contents, errorCorrectionLevel); byte[][] originalScale = encoder.getBarcodeMatrix().getScaledMatrix(1, 4); boolean rotated = false; int i2 = height > width ? 1 : 0; if (originalScale[0].length < originalScale.length) { i = 1; } else { i = 0; } if ((i2 ^ i) != 0) { originalScale = rotateArray(originalScale); rotated = true; } int scaleX = width / originalScale[0].length; int scaleY = height / originalScale.length; if (scaleX < scaleY) { scale = scaleX; } else { scale = scaleY; } if (scale <= 1) { return bitMatrixFrombitArray(originalScale, margin); } byte[][] scaledMatrix = encoder.getBarcodeMatrix().getScaledMatrix(scale, scale * 4); if (rotated) { scaledMatrix = rotateArray(scaledMatrix); } return bitMatrixFrombitArray(scaledMatrix, margin); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType,?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); int margin = WHITE_SPACE; if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact((Boolean) hints.get(EncodeHintType.PDF417_COMPACT)); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction((Compaction) hints.get(EncodeHintType.PDF417_COMPACTION)); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } if (hints.containsKey(EncodeHintType.MARGIN)) { margin = ((Number) hints.get(EncodeHintType.MARGIN)).intValue(); } if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { String encoding = (String) hints.get(EncodeHintType.CHARACTER_SET); encoder.setEncoding(Charset.forName(encoding)); } } return bitMatrixFromEncoder(encoder, contents, width, height, margin); }
/** * Takes encoder, accounts for width/height, and retrieves bit matrix */ private static BitMatrix bitMatrixFromEncoder(PDF417 encoder, String contents, int width, int height, int margin) throws WriterException { int errorCorrectionLevel = 2; encoder.generateBarcodeLogic(contents, errorCorrectionLevel); int lineThickness = 2; int aspectRatio = 4; byte[][] originalScale = encoder.getBarcodeMatrix().getScaledMatrix(lineThickness, aspectRatio * lineThickness); boolean rotated = false; if ((height > width) ^ (originalScale[0].length < originalScale.length)) { originalScale = rotateArray(originalScale); rotated = true; } int scaleX = width / originalScale[0].length; int scaleY = height / originalScale.length; int scale; if (scaleX < scaleY) { scale = scaleX; } else { scale = scaleY; } if (scale > 1) { byte[][] scaledMatrix = encoder.getBarcodeMatrix().getScaledMatrix(scale * lineThickness, scale * aspectRatio * lineThickness); if (rotated) { scaledMatrix = rotateArray(scaledMatrix); } return bitMatrixFrombitArray(scaledMatrix, margin); } return bitMatrixFrombitArray(originalScale, margin); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); int margin = WHITE_SPACE; if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact((Boolean) hints.get(EncodeHintType.PDF417_COMPACT)); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction((Compaction) hints.get(EncodeHintType.PDF417_COMPACTION)); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } if (hints.containsKey(EncodeHintType.MARGIN)) { margin = ((Number) hints.get(EncodeHintType.MARGIN)).intValue(); } if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { String encoding = (String) hints.get(EncodeHintType.CHARACTER_SET); encoder.setEncoding(Charset.forName(encoding)); } } return bitMatrixFromEncoder(encoder, contents, width, height, margin); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact((Boolean) hints.get(EncodeHintType.PDF417_COMPACT)); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction((Compaction) hints.get(EncodeHintType.PDF417_COMPACTION)); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } } return bitMatrixFromEncoder(encoder, contents, width, height); }
/** * Takes encoder, accounts for width/height, and retrieves bit matrix */ private static BitMatrix bitMatrixFromEncoder(PDF417 encoder, String contents, int width, int height) throws WriterException { int errorCorrectionLevel = 2; encoder.generateBarcodeLogic(contents, errorCorrectionLevel); int lineThickness = 2; int aspectRatio = 4; byte[][] originalScale = encoder.getBarcodeMatrix().getScaledMatrix(lineThickness, aspectRatio * lineThickness); boolean rotated = false; if ((height > width) ^ (originalScale[0].length < originalScale.length)) { originalScale = rotateArray(originalScale); rotated = true; } int scaleX = width / originalScale[0].length; int scaleY = height / originalScale.length; int scale; if (scaleX < scaleY) { scale = scaleX; } else { scale = scaleY; } if (scale > 1) { byte[][] scaledMatrix = encoder.getBarcodeMatrix().getScaledMatrix(scale * lineThickness, scale * aspectRatio * lineThickness); if (rotated) { scaledMatrix = rotateArray(scaledMatrix); } return bitMatrixFrombitArray(scaledMatrix); } return bitMatrixFrombitArray(originalScale); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType,?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact((Boolean) hints.get(EncodeHintType.PDF417_COMPACT)); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction((Compaction) hints.get(EncodeHintType.PDF417_COMPACTION)); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } } return bitMatrixFromEncoder(encoder, contents, width, height); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType,?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); int margin = WHITE_SPACE; int errorCorrectionLevel = DEFAULT_ERROR_CORRECTION_LEVEL; if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact(Boolean.valueOf(hints.get(EncodeHintType.PDF417_COMPACT).toString())); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction(Compaction.valueOf(hints.get(EncodeHintType.PDF417_COMPACTION).toString())); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } if (hints.containsKey(EncodeHintType.MARGIN)) { margin = Integer.parseInt(hints.get(EncodeHintType.MARGIN).toString()); } if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { errorCorrectionLevel = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString()); } if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { Charset encoding = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString()); encoder.setEncoding(encoding); } } return bitMatrixFromEncoder(encoder, contents, errorCorrectionLevel, width, height, margin); }
@Override public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) throws WriterException { if (format != BarcodeFormat.PDF_417) { throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); } PDF417 encoder = new PDF417(); int margin = WHITE_SPACE; int errorCorrectionLevel = DEFAULT_ERROR_CORRECTION_LEVEL; if (hints != null) { if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { encoder.setCompact(Boolean.valueOf(hints.get(EncodeHintType.PDF417_COMPACT).toString())); } if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { encoder.setCompaction(Compaction.valueOf(hints.get(EncodeHintType.PDF417_COMPACTION).toString())); } if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); encoder.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); } if (hints.containsKey(EncodeHintType.MARGIN)) { margin = Integer.parseInt(hints.get(EncodeHintType.MARGIN).toString()); } if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { errorCorrectionLevel = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString()); } if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { Charset encoding = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString()); encoder.setEncoding(encoding); } } return bitMatrixFromEncoder(encoder, contents, errorCorrectionLevel, width, height, margin); }