如果我渲染到位图,则位图具有特定数量的像素和DPI.这种组合可以很容易地绘制一个1"x 1"的正方形 - 我为DPI像素长的每一边渲染线条.
当我创建一个SVG时,我认为它仍然可以这样设置.我设置每英寸的单位,以及整个对象的单位大小.是的,您可以放大SVG文件,因为它是所有向量,但它仍然应该有100%的缩放大小来渲染.
在我的情况下,我正在为我的单位使用EMU.所以914400单位/英寸.问题#1是,如何使用Batik设置缩放比例.对于位图,它是:
AffineTransform scaleToEmus = AffineTransform.getScaleInstance(dpi / (float) DrawingSurface.EPI, dpi / (float) DrawingSurface.EPI); graphics.transform(scaleToEmus);
但是SVG没有dpi等价物.
然后对于EMU中的给定宽度和高度,我是否使用以下方法设置图像的大小(或最大范围):
svgGraphics.setSVGCanvasSize(new Dimension(width, height));
我想我还没有完全理解SVG,或者至少是Batik,因为我没有看到如何将单位设置为100%缩放渲染.