Setting a vertical quitezone on Code128 (for example) has no impact on the final image.
There are two problems leading to this:
-The dimensions of the whole image are calculated wrong.
-The barcode and the text are drawn at the wrong position.
***Fix***
**Size of the whole image**
-Code128Bean:calcDimensions(String) (Probably other barcodes are affected too)
insert:
final double vqz = (hasQuietZone() ? quietZoneVertical.doubleValue() : 0);
change:
return new BarcodeDimension(width, getHeight(), width + (2 * qz), getHeight(), qz, 0);
to:
return new BarcodeDimension(width, getHeight(), width + (2 * qz), getHeight() + (2 * vqz), qz, vqz);
**Position of the barcode**
-DefaultCanvasLogicHandler:addBar(boolean,int)
insert:
double vqz = (bcBean.hasQuietZone() ? bcBean.getVerticalQuietZone() : 0.0);
change:
canvas.drawRectWH(x, 0, w, bcBean.getHeight());
to:
canvas.drawRectWH(x, vqz, w, bcBean.getHeight());
canvas.drawRectWH(x, bcBean.getHumanReadableHeight(), w, bcBean.getBarHeight());
to:
canvas.drawRectWH(x, vqz+bcBean.getHumanReadableHeight(), w, bcBean.getBarHeight());
canvas.drawRectWH(x, 0, w, bcBean.getBarHeight());
to:
canvas.drawRectWH(x, vqz, w, bcBean.getBarHeight());
-DefaultCanvasLogicHandler:endBarcode()
insert:
double vqz = (bcBean.hasQuietZone() ? bcBean.getVerticalQuietZone() : 0.0);
insert twice:
ty += vqz;
(after the if(bcBean.hasFontDescender(){} and before the call of DrawingUtil.drawText(...)).
I see, it was not forgotten, but it was left away on purpose because 1D barcodes don't have quite zones. My bad.