public static final String svgNS = "http://www.w3.org/2000/svg";
- public Generator(SVGGeneratorContext ctx, boolean joku) {
- super(ctx, joku);
+ public Generator(SVGGeneratorContext ctx, boolean textAsShapes) {
+ super(ctx, textAsShapes);
}
public Generator(Document document) {
super(document);
+ // prevent batik comment in each g-element
+ getGeneratorContext().setComment(null);
}
@Override
RenderSVGContext result = new RenderSVGContext();
+ double[] matrix = new double[6];
try {
Selection selection = ctx.getAtMostOneItemOfClass(Selection.class);
double scale = width < 0 || height < 0 ? 1.0 : Math.min((width - 2*offset) / content.getWidth(), (height - 2*offset) / content.getHeight());
- svgGenerator.translate(offset, offset);
- svgGenerator.scale(scale, scale);
+ AffineTransform tr = new AffineTransform();
+ tr.translate(offset, offset);
+ tr.scale(scale, scale);
+ tr.translate(-content.getX(), -content.getY());
+ tr.getMatrix(matrix);
+ //svgGenerator.translate(offset, offset);
+ //svgGenerator.scale(scale, scale);
// translate svgGenerator to the x and y coordinates of current content
- svgGenerator.translate(-content.getX(), -content.getY());
+ //svgGenerator.translate(-content.getX(), -content.getY());
svgGenerator.setSVGCanvasSize(new Dimension((int)Math.ceil(scale * content.getWidth()) + 2*offset, (int)Math.ceil(scale * content.getHeight()) + 2*offset));
//svgGenerator.setClip(content);
StringBuilder res = new StringBuilder();
res.append("<svg width=\"100%\" height=\"100%\" stroke=\"black\">");
+ res.append("<g transform=\"matrix(").append(matrix[0]).append(",").append(matrix[1]).append(",").append(matrix[2]).append(",").append(matrix[3]).append(",").append(matrix[4]).append(",").append(matrix[5]).append(")\">");
res.append(result.get(MAIN_SECTION));
res.append(result.get(SELECTION_SECTION));
res.append(result.get(SELECTION_MASK_SECTION));
+ res.append("</g>");
res.append("</svg>");
// System.err.println(" == FINAL RESULT == ");
parentBuilder2.append(SELECTION_SECTION, "\n<g style=\"visibility:hidden\" class=\"selection\" id=\"" + key + "\">");
parentBuilder2.append(SELECTION_SECTION, svg);
parentBuilder2.append(SELECTION_SECTION, "\n</g>");
- AffineTransform transform = svgGenerator.getTransform();
- double[] matrix = new double[6];
- transform.getMatrix(matrix);
- String matrixString = String.format("matrix(%f,%f,%f,%f,%f,%f)", matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
- parentBuilder2.append(SELECTION_MASK_SECTION, "\n<g class=\"selectionMask\" id=\"" + key + "\" transform=\"" + matrixString + "\">");
+ parentBuilder2.append(SELECTION_MASK_SECTION, "\n<g class=\"selectionMask\" id=\"" + key /*+ "\" transform=\"" + matrixString + "\"*/+ "\">");
Rectangle2D rect = n.getRect();
// NaN
if(rect.getHeight() == rect.getHeight() && rect.getWidth() == rect.getWidth()) {