float svgScale = 1f;
float extraMargin = planComponent.getStrokeWidthExtraMargin(homeItems);
Dimension imageSize = new Dimension((int)Math.ceil(svgItemBounds.getWidth() * svgScale + 2 * extraMargin),
(int)Math.ceil(svgItemBounds.getHeight() * svgScale + 2 * extraMargin));
SVGGraphics2D exportG2D = new SVGGraphics2D(outputStream, imageSize) {
@Override
public void writeHeader() throws IOException {
// Use English locale to avoid wrong encoding when localized dates contain accentuated letters
Locale defaultLocale = Locale.getDefault();
Locale.setDefault(Locale.ENGLISH);
super.writeHeader();
Locale.setDefault(defaultLocale);
}
};
UserProperties properties = new UserProperties();
properties.setProperty(SVGGraphics2D.STYLABLE, true);
properties.setProperty(SVGGraphics2D.WRITE_IMAGES_AS, ImageConstants.PNG);
properties.setProperty(SVGGraphics2D.TITLE,
planComponent.home.getName() != null
? planComponent.home.getName()
: "" );
properties.setProperty(SVGGraphics2D.FOR, System.getProperty("user.name", ""));
exportG2D.setProperties(properties);
exportG2D.startExport();
exportG2D.translate(-svgItemBounds.getMinX() + extraMargin,
-svgItemBounds.getMinY() + extraMargin);
planComponent.checkCurrentThreadIsntInterrupted(PaintMode.EXPORT);
planComponent.paintContent(exportG2D, svgScale, Color.WHITE, Color.BLACK, PaintMode.EXPORT);
exportG2D.endExport();
}