I am upgrading libraries (from 3.x version) in my JasperReports project and I don't know, where get those 3 variables. They used to be protected in older version. import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.AffineTransform; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRPrintPage; import net.sf.jasperreports.engine.export.JRGraphics2DExporter; public class SRptGraphics2DExporter extends JRGraphics2DExporter { Double rotationAngle = 0.0; public SRptGraphics2DExporter() throws JRException { super(); this.setParameter(SRptGraphics2DExporterParameter.ROTATION_ANGLE, new Double(0.0)); } @Override public void exportReportToGraphics2D() throws JRException { boolean printPageBorders = (Boolean) parameters.get(SRptGraphics2DExporterParameter.PRINT_PAGE_BORDERS); rotationAngle = (Double) parameters.get(SRptGraphics2DExporterParameter.ROTATION_ANGLE); grx.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); grx.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); grx.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); AffineTransform atrans = new AffineTransform(); atrans.translate(globalOffsetX, globalOffsetY); atrans.rotate(rotationAngle); atrans.scale(zoom, zoom); AffineTransform sa = grx.getTransform(); grx.transform(atrans); java.util.List pages = jasperPrint.getPages(); if (pages != null) { Shape oldClipShape = grx.getClip(); grx.clip(new Rectangle(0, 0, jasperPrint.getPageWidth(), jasperPrint.getPageHeight())); try { JRPrintPage page = (JRPrintPage) pages.get(startPageIndex); exportPage(page); if (printPageBorders) { grx.drawRect(0, 0, jasperPrint.getPageWidth(), jasperPrint.getPageHeight()); } } finally { grx.setClip(oldClipShape); grx.setTransform(sa); } } } }