in src/main/java/org/apache/xmlgraphics/java2d/ps/PSGraphics2D.java [609:664]
public static void applyStroke(Stroke stroke, final PSGenerator gen)
throws IOException {
if (stroke instanceof BasicStroke) {
BasicStroke basicStroke = (BasicStroke)stroke;
float[] da = basicStroke.getDashArray();
if (da != null) {
StringBuffer sb = new StringBuffer("[");
for (int count = 0; count < da.length; count++) {
sb.append(gen.formatDouble(da[count]));
if (count < da.length - 1) {
sb.append(" ");
}
}
sb.append("] ");
float offset = basicStroke.getDashPhase();
sb.append(gen.formatDouble(offset));
gen.useDash(sb.toString());
} else {
gen.useDash(null);
}
int ec = basicStroke.getEndCap();
switch (ec) {
case BasicStroke.CAP_BUTT:
gen.useLineCap(0);
break;
case BasicStroke.CAP_ROUND:
gen.useLineCap(1);
break;
case BasicStroke.CAP_SQUARE:
gen.useLineCap(2);
break;
default: System.err.println("Unsupported line cap: " + ec);
}
int lj = basicStroke.getLineJoin();
switch (lj) {
case BasicStroke.JOIN_MITER:
gen.useLineJoin(0);
float ml = basicStroke.getMiterLimit();
gen.useMiterLimit(ml >= -1 ? ml : 1);
break;
case BasicStroke.JOIN_ROUND:
gen.useLineJoin(1);
break;
case BasicStroke.JOIN_BEVEL:
gen.useLineJoin(2);
break;
default: System.err.println("Unsupported line join: " + lj);
}
float lw = basicStroke.getLineWidth();
gen.useLineWidth(lw);
} else {
System.err.println("Stroke not supported: " + stroke.toString());
}
}