1 17 18 19 20 package org.apache.fop.render.java2d; 21 22 import java.awt.Color ; 23 import java.awt.Dimension ; 24 import java.awt.geom.AffineTransform ; 25 import java.awt.geom.Rectangle2D ; 26 import java.io.IOException ; 27 28 import org.apache.fop.render.Graphics2DAdapter; 29 import org.apache.fop.render.Graphics2DImagePainter; 30 import org.apache.fop.render.RendererContext; 31 32 35 public class Java2DGraphics2DAdapter implements Graphics2DAdapter { 36 37 private Java2DGraphicsState state; 38 39 43 public Java2DGraphics2DAdapter(Java2DGraphicsState state) { 44 this.state = state; 45 } 46 47 48 public void paintImage(Graphics2DImagePainter painter, 49 RendererContext context, 50 int x, int y, int width, int height) throws IOException { 51 52 float fwidth = width / 1000f; 53 float fheight = height / 1000f; 54 float fx = x / 1000f; 55 float fy = y / 1000f; 56 57 Dimension dim = painter.getImageSize(); 59 float imw = (float)dim.getWidth() / 1000f; 60 float imh = (float)dim.getHeight() / 1000f; 61 62 float sx = fwidth / (float)imw; 63 float sy = fheight / (float)imh; 64 65 Java2DRenderer renderer = (Java2DRenderer)context.getRenderer(); 66 renderer.saveGraphicsState(); 67 state.getGraph().setColor(Color.black); 68 state.getGraph().setBackground(Color.black); 69 70 72 state.getGraph().translate(fx, fy); 76 AffineTransform at = AffineTransform.getScaleInstance(sx, sy); 77 if (!at.isIdentity()) { 78 state.getGraph().transform(at); 79 } 80 81 Rectangle2D area = new Rectangle2D.Double (0.0, 0.0, imw, imh); 82 painter.paint(state.getGraph(), area); 83 84 renderer.restoreGraphicsState(); 85 86 } 87 88 } 89 | Popular Tags |