List of usage examples for com.itextpdf.text.pdf PdfContentByte rectangle
public void rectangle(final double x, final double y, final double w, final double h)
From source file:PrefichaPDF.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try {/*from w ww . j a va2s. co m*/ response.setContentType("application/pdf"); String curp = new String(request.getParameter("curp").getBytes("ISO-8859-1"), "UTF-8"); ConexionOracle conexionOracle = new ConexionOracle(); String sql = "select * from PERSONALDATA_ASP_TAB where curp=" + "'" + curp + "'"; System.out.println(sql); System.out.println("Esta es la curp: " + curp); conexionOracle.conectar(); Connection conn = conexionOracle.getConnection(); // driver@machineName:port:SID , userid, password Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery(sql); while (rset.next()) { fichabd = rset.getString("id_aspirante"); periodobd = rset.getString("periodo_solicitud"); prefichabd = rset.getString("preficha"); nombrebd = rset.getString("nombre"); String appat = rset.getString("apellido_pat"); String apmat = rset.getString("apellido_mat"); apellidosbd = appat + " " + apmat; curpbd = rset.getString("curp"); carrerabd = rset.getString("carrera"); modalidadbd = rset.getString("modalidad"); } try { Document preficha = new Document(); PdfWriter writer = PdfWriter.getInstance(preficha, response.getOutputStream()); preficha.open(); //encabezado //encabezado //encabezado //encabezado // documento.add(vacio); // documento.add(vacio); // documento.add(vacio); Paragraph depto = new Paragraph("Departamento de servicios escolares", FontFactory.getFont("arial", 20, Font.BOLD)); depto.setAlignment(Element.ALIGN_CENTER); preficha.add(depto); Paragraph vacio = new Paragraph(" ", FontFactory.getFont("arial", 10, Font.BOLD)); vacio.setAlignment(Element.ALIGN_CENTER); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); //cuerpo //cuerpo //cuerpo //cuerpo //cuerpo Paragraph periodo_text = new Paragraph("Convocatoria de nuevo ingreso periodo: " + periodobd, FontFactory.getFont("arial", 10, Font.BOLD)); periodo_text.setAlignment(Element.ALIGN_CENTER); preficha.add(periodo_text); preficha.add(vacio); preficha.add(vacio); Paragraph fotografia = new Paragraph("Fotografa", FontFactory.getFont("arial", 10, Font.BOLD)); fotografia.setAlignment(Element.ALIGN_CENTER); preficha.add(fotografia); PdfContentByte rectangulo_general = writer.getDirectContentUnder(); rectangulo_general.rectangle(50, 48, 500, 710); rectangulo_general.fill(); drawRectangleSC(rectangulo_general, 50, 48, 500, 710); PdfContentByte rectangulo_periodo = writer.getDirectContentUnder(); rectangulo_periodo.rectangle(125, 725, 350, 20); rectangulo_periodo.fill(); drawRectangleSC(rectangulo_periodo, 125, 725, 350, 20); String url_logo = "/Imagenes/itt_logo_opt.jpg"; String absolute_url_logo = getServletContext().getRealPath(url_logo); Image itt_logo = Image.getInstance(absolute_url_logo); String url_logo_bnmx = "/Imagenes/bnmx_color_opt.jpg"; String absolute_url_logo_bnmx = getServletContext().getRealPath(url_logo_bnmx); Image bnmx_logo = Image.getInstance(absolute_url_logo_bnmx); Image Logo_itt = Image.getInstance(itt_logo); Logo_itt.setAbsolutePosition(140f, 640f); preficha.add(Logo_itt); Image Logo_banco = Image.getInstance(bnmx_logo); Logo_banco.setAbsolutePosition(380f, 340f); preficha.add(Logo_banco); PdfContentByte espacio_imagen = writer.getDirectContentUnder(); espacio_imagen.rectangle(255, 635, 85, 80); espacio_imagen.fill(); drawRectangleSC(espacio_imagen, 255, 635, 85, 80); // preficha.add(vacio); preficha.add(vacio); PdfContentByte fechaimpr = writer.getDirectContentUnder(); fechaimpr.rectangle(416, 635, 100, 35); fechaimpr.fill(); drawRectangleSC(fechaimpr, 416, 635, 100, 35); // drawRectangle(fechaimpr, 85, 530, 430, 25); Paragraph fechapdf = new Paragraph("\tFecha de impresin ", FontFactory.getFont("arial", 10, com.itextpdf.text.Font.BOLD)); fechapdf.setAlignment(Element.ALIGN_RIGHT); preficha.add(fechapdf); Paragraph fechapdf_fec = new Paragraph("\t" + fecha_hoy() + " ", FontFactory.getFont("arial", 10, com.itextpdf.text.Font.BOLD)); fechapdf_fec.setAlignment(Element.ALIGN_RIGHT); preficha.add(fechapdf_fec); preficha.add(vacio); Paragraph no_preficha = new Paragraph("Preficha N: " + prefichabd, FontFactory.getFont("arial", 20, Font.BOLD)); no_preficha.setAlignment(Element.ALIGN_CENTER); preficha.add(no_preficha); preficha.add(vacio); // preficha.add(vacio); PdfContentByte rectangulo_preficha_no = writer.getDirectContentUnder(); rectangulo_preficha_no.rectangle(85, 590, 430, 25); rectangulo_preficha_no.fill(); drawRectangleSC(rectangulo_preficha_no, 85, 590, 430, 25); PdfContentByte rectangulo_datos = writer.getDirectContentUnder(); rectangulo_datos.rectangle(85, 500, 430, 80); // rectangulo_datos.rec rectangulo_datos.fill(); drawRectangleSC(rectangulo_datos, 85, 500, 430, 80); ////////////////////////////// Paragraph nombre = new Paragraph( " Nombre: " + nombrebd, FontFactory.getFont("arial", 10, Font.BOLD)); nombre.setAlignment(Element.ALIGN_LEFT); preficha.add(nombre); // preficha.add(vacio); Paragraph apellidos = new Paragraph( " " + apellidosbd, FontFactory.getFont("arial", 10, Font.BOLD)); apellidos.setAlignment(Element.ALIGN_LEFT); preficha.add(apellidos); // preficha.add(vacio); Paragraph CURP = new Paragraph( " CURP: " + curpbd, FontFactory.getFont("arial", 10, Font.BOLD)); CURP.setAlignment(Element.ALIGN_LEFT); preficha.add(CURP); // preficha.add(vacio); Paragraph carrera = new Paragraph( " Carrera Solicitada: " + carrerabd, FontFactory.getFont("arial", 10, Font.BOLD)); carrera.setAlignment(Element.ALIGN_LEFT); preficha.add(carrera); // preficha.add(vacio); Paragraph modalidad = new Paragraph( " Modalidad: " + modalidadbd, FontFactory.getFont("arial", 10, Font.BOLD)); modalidad.setAlignment(Element.ALIGN_LEFT); preficha.add(modalidad); preficha.add(vacio); // preficha.add(vacio); Paragraph formatoBanamex = new Paragraph("FORMATO UNIVERSAL PARA DEPSITOS EN SUCURSALES BANAMEX", FontFactory.getFont("arial", 10, Font.BOLD)); formatoBanamex.setAlignment(Element.ALIGN_CENTER); preficha.add(formatoBanamex); PdfContentByte rectanguloDepositoB = writer.getDirectContentUnder(); rectanguloDepositoB.rectangle(85, 470, 430, 20); rectanguloDepositoB.fill(); drawRectangle(rectanguloDepositoB, 85, 470, 430, 20); PdfContentByte rectanguloPago = writer.getDirectContentUnder(); rectanguloPago.rectangle(85, 280, 430, 190); rectanguloPago.fill(); drawRectangleSC(rectanguloPago, 85, 280, 430, 190); preficha.add(vacio); PdfContentByte rectanguloConcepto = writer.getDirectContentUnder(); rectanguloConcepto.rectangle(150, 425, 295, 35); // rectangulo_datos.rec rectanguloConcepto.fill(); drawRectangleSC(rectanguloConcepto, 150, 425, 295, 35); Paragraph formatoConceptoPre = new Paragraph("CONCEPTO: PAGO DE DERECHO A EXAMEN DE ADMISIN", FontFactory.getFont("arial", 10, Font.BOLD)); formatoConceptoPre.setAlignment(Element.ALIGN_CENTER); preficha.add(formatoConceptoPre); Paragraph fechaEmision = new Paragraph("FECHA DE EMISIN: 18/12/2014", FontFactory.getFont("arial", 10, Font.BOLD)); fechaEmision.setAlignment(Element.ALIGN_CENTER); preficha.add(fechaEmision); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); preficha.add(vacio); Paragraph importe = new Paragraph("IMPORTE A PAGAR: $1,500.", FontFactory.getFont("arial", 15, Font.BOLD)); importe.setAlignment(Element.ALIGN_CENTER); preficha.add(importe); preficha.add(vacio); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); String ref = "44353452342353464765634523434"; Paragraph referencia = new Paragraph( " REFERENCIA (B): " + ref, FontFactory.getFont("arial", 10, Font.BOLD)); referencia.setAlignment(Element.ALIGN_LEFT); preficha.add(referencia); preficha.add(vacio); // Paragraph descrConcepto = new Paragraph("DESCRIPCIN DEL CONCEPTO: CUOTA POR CONCEPTO DE PREINCRIPCIN.", FontFactory.getFont("arial", 10, Font.BOLD)); // descrConcepto.setAlignment(Element.ALIGN_CENTER); // preficha.add(descrConcepto); preficha.add(vacio); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); Paragraph atencion = new Paragraph("Atencin", FontFactory.getFont("arial", 15, Font.BOLD)); atencion.setAlignment(Element.ALIGN_CENTER); preficha.add(atencion); PdfContentByte rectangulo_atencion = writer.getDirectContentUnder(); rectangulo_atencion.rectangle(245, 229, 100, 25); rectangulo_atencion.fill(); drawRectangle(rectangulo_atencion, 245, 229, 100, 25); PdfContentByte rectangulo_info = writer.getDirectContentUnder(); rectangulo_info.rectangle(85, 94, 430, 100); rectangulo_info.fill(); drawRectangle(rectangulo_info, 85, 94, 430, 120); preficha.add(vacio); preficha.add(vacio); Paragraph informacion = new Paragraph( " Para continuar con el proceso de preinscripcin debers:\n" + " - Realizar el pago para tu examen de admisin con la \"REFERENCIA\" que aparece\n" + " en este documento en cualquier sucursal BANAMEX.\n" + " - Recibir la notificacin en tu correo electrnico y estar al pendiente de \n" + " las notificaciones que sern enviadas al mismo de que el pago ya fue procesado \n" + " para completar tu proceso de preinscripcin.\n", FontFactory.getFont("arial", 10, Font.BOLD)); informacion.setAlignment(Element.ALIGN_LEFT); preficha.add(informacion); // pie // pie // pie // pie // pie preficha.add(vacio); preficha.add(vacio); preficha.addTitle("Preficha"); preficha.addSubject("Instituto Tecnolgico de Toluca"); preficha.addKeywords("Instituto Tecnolgico de Toluca"); preficha.addAuthor("Departamento de Servicios escolares"); preficha.addCreator("Departamento de Servicios escolares"); preficha.close(); preficha.close(); } catch (DocumentException de) { throw new IOException(de.getMessage()); } } catch (SQLException ex) { Logger.getLogger(PrefichaPDF.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:PrefichaPDF.java
public static void drawRectangle(PdfContentByte content, float x, float y, float width, float height) { content.saveState();//from w w w.j a v a 2s . c om PdfGState state = new PdfGState(); content.setGState(state); content.setRGBColorFill(232, 232, 232); content.setColorStroke(BaseColor.LIGHT_GRAY); // content.setr content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); }
From source file:PrefichaPDF.java
public static void drawRectangleSC(PdfContentByte content, float x, float y, float width, float height) { content.saveState();//w w w. j ava 2 s. com PdfGState state = new PdfGState(); // state.setFillOpacity(0.6f); content.setGState(state); content.setRGBColorFill(0xFF, 0xFF, 0xFA); content.setColorStroke(BaseColor.LIGHT_GRAY); content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); }
From source file:PrefichaPDF.java
public static void drawRectangleText(PdfContentByte content, float x, float y, float width, float height) { content.saveState();//from w w w. j ava2s .c om PdfGState state = new PdfGState(); content.setGState(state); content.setRGBColorFill(0, 230, 255); content.setColorStroke(BaseColor.LIGHT_GRAY); content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); }
From source file:adams.flow.transformer.pdfproclet.Rectangle.java
License:Open Source License
/** * The actual processing of the document. * * @param generator the context//ww w . j a v a 2 s . c om * @param file the file to add * @return true if successfully added * @throws Exception if something goes wrong */ protected boolean doProcess(PDFGenerator generator, File file) throws Exception { PdfContentByte cb; cb = generator.getWriter().getDirectContent(); cb.saveState(); cb.setColorStroke(new BaseColor(m_Color.getRGB())); cb.setColorFill(new BaseColor(m_Color.getRGB())); cb.setLineWidth(m_LineWidth); cb.rectangle(m_X, m_Y, m_X + m_Width, m_Y + m_Height); if (m_Fill) cb.fillStroke(); else cb.stroke(); cb.restoreState(); return true; }
From source file:bouttime.report.bracketsheet.BracketSheetUtil.java
License:Open Source License
public static void drawRectangle(PdfContentByte cb, float x, float y, float width, float height, float lineWidth, float grayStroke) { setLineWidthGrayStroke(cb, lineWidth, grayStroke); cb.rectangle(x, y, width, height); cb.stroke();//from www . j a v a 2s . c o m }
From source file:com.innoviu.signature.Signature.java
public static void main(String[] args) { boolean isEncrypted = false; boolean isFailed = false; try {//from w w w . j a v a2 s. c om if (args.length < 2) { throw new FileNotFoundException(); } PdfReader reader = new PdfReader(args[0]); isEncrypted = reader.isEncrypted(); String suffix = ".pdf"; if (isEncrypted) { System.out.println("Encrypted"); String[] cmd = { "pdftk", args[0], "output", args[0] + ".pdftk.pdf" }; try { Process proc = Runtime.getRuntime().exec(cmd); proc.waitFor(); } catch (Exception e) { System.out.println("Exception is:" + e); } reader = new PdfReader(args[0] + ".pdftk.pdf"); suffix = ".dec.pdf"; } PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(args[0] + suffix)); PdfContentByte over = stamper.getOverContent(1); String type = args[2]; int xpos = 0; //int xpos = (type == "in") ? 120 : 10; if ("in".equals(type)) { xpos = 0; } else { xpos = 120; } over.setColorFill(BaseColor.WHITE); over.rectangle(xpos + 10, 8, 120, 8); over.fill(); over.beginText(); BaseFont bf_times = BaseFont.createFont(BaseFont.TIMES_ROMAN, "Cp1252", false); over.setFontAndSize(bf_times, 6); over.setColorFill(BaseColor.BLACK); over.showTextAligned(PdfContentByte.ALIGN_RIGHT, args[1], 120 + xpos, 10, 0); over.endText(); stamper.close(); if (isEncrypted) { File file = new File(args[0] + ".pdftk.pdf"); file.delete(); } } catch (FileNotFoundException e) { isFailed = true; e.printStackTrace(); } catch (DocumentException e) { isFailed = true; e.printStackTrace(); } catch (IOException e) { isFailed = true; e.printStackTrace(); } finally { if (isEncrypted) { maintain(args[0]); } else if (isFailed) { fail(args[0]); } else { } } }
From source file:com.mycompany.mavenproject1.Createpdf.java
private void generateLayout(Document doc, PdfContentByte cb) { try {// w ww .j a v a 2 s . c o m cb.setLineWidth(1f); // Invoice Header box layout cb.rectangle(420, 700, 150, 60); cb.moveTo(420, 720); cb.lineTo(570, 720); cb.moveTo(420, 740); cb.lineTo(570, 740); cb.moveTo(480, 700); cb.lineTo(480, 760); cb.stroke(); // Invoice Header box Text Headings createHeadings(cb, 422, 743, "Account No."); createHeadings(cb, 422, 723, "Invoice No."); createHeadings(cb, 422, 703, "Invoice Date"); // Invoice Detail box layout cb.rectangle(20, 50, 550, 600); cb.moveTo(20, 630); cb.lineTo(570, 630); cb.moveTo(50, 50); cb.lineTo(50, 650); cb.moveTo(150, 50); cb.lineTo(150, 650); cb.moveTo(430, 50); cb.lineTo(430, 650); cb.moveTo(500, 50); cb.lineTo(500, 650); cb.stroke(); // Invoice Detail box Text Headings createHeadings(cb, 22, 633, "Qty"); createHeadings(cb, 52, 633, "Item Number"); createHeadings(cb, 152, 633, "Item Description"); createHeadings(cb, 432, 633, "Price"); createHeadings(cb, 502, 633, "Ext Price"); //add the images Image companyLogo = Image.getInstance("images/olympics_logo.gif"); companyLogo.setAbsolutePosition(25, 700); companyLogo.scalePercent(25); doc.add(companyLogo); } catch (DocumentException dex) { dex.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } }
From source file:com.vectorprint.report.itext.debug.DebugHelper.java
License:Open Source License
/** * This method will append to the pdf a legend explaining the visual feedback in the pdf, an overview of the styles * used and an overview of the properties used. * * @throws DocumentException// w w w. j a v a 2 s. c o m */ public static void appendDebugInfo(PdfWriter writer, Document document, EnhancedMap settings, StylerFactory stylerFactory) throws DocumentException, VectorPrintException { PdfContentByte canvas = writer.getDirectContent(); canvas.setFontAndSize(FontFactory.getFont(FontFactory.COURIER).getBaseFont(), 8); canvas.setColorFill( itextHelper.fromColor(settings.getColorProperty(Color.MAGENTA, ReportConstants.DEBUGCOLOR))); canvas.setColorStroke( itextHelper.fromColor(settings.getColorProperty(Color.MAGENTA, ReportConstants.DEBUGCOLOR))); Font f = FontFactory.getFont(FontFactory.COURIER, 8); f.setColor(itextHelper.fromColor(settings.getColorProperty(Color.MAGENTA, ReportConstants.DEBUGCOLOR))); float top = document.getPageSize().getTop(); document.add(new Phrase(new Chunk("table: ", f).setLocalDestination(DEBUGPAGE))); document.add(Chunk.NEWLINE); document.add(new Phrase("cell: ", f)); document.add(Chunk.NEWLINE); document.add(new Phrase("image: ", f)); document.add(Chunk.NEWLINE); document.add(new Phrase("text: ", f)); document.add(Chunk.NEWLINE); document.add(new Phrase("background color is shown in a small rectangle", f)); document.add(Chunk.NEWLINE); canvas.setLineWidth(2); canvas.setLineDash(new float[] { 0.3f, 5 }, 0); float left = document.leftMargin(); canvas.rectangle(left + 80, top - 25, left + 80, 8); canvas.closePathStroke(); canvas.setLineWidth(0.3f); canvas.setLineDash(new float[] { 2, 2 }, 0); canvas.rectangle(left + 80, top - 37, left + 80, 8); canvas.closePathStroke(); canvas.setLineDash(new float[] { 1, 0 }, 0); canvas.rectangle(left + 80, top - 50, left + 80, 8); canvas.closePathStroke(); canvas.setLineDash(new float[] { 0.3f, 5 }, 0); canvas.rectangle(left + 80, top - 63, left + 80, 8); canvas.closePathStroke(); document.add(Chunk.NEWLINE); document.add(new Phrase("fonts available: " + FontFactory.getRegisteredFonts(), f)); document.add(Chunk.NEWLINE); if (settings.getBooleanProperty(false, DEBUG)) { document.add(new Phrase("OVERVIEW OF STYLES FOR THIS REPORT", f)); document.add(Chunk.NEWLINE); document.add(Chunk.NEWLINE); } Font b = new Font(f); b.setStyle("bold"); Set<Map.Entry<String, String>> entrySet = stylerFactory.getStylerSetup().entrySet(); for (Map.Entry<String, String> styleInfo : entrySet) { String key = styleInfo.getKey(); document.add(new Chunk(key, b).setLocalDestination(key)); document.add(new Chunk(": " + styleInfo.getValue(), f)); document.add(Chunk.NEWLINE); document.add(new Phrase(" styling configured by " + key + ": ", f)); for (BaseStyler st : (Collection<BaseStyler>) stylerFactory.getBaseStylersFromCache((key))) { document.add(Chunk.NEWLINE); document.add(new Chunk(" ", f)); document.add(new Chunk(st.getClass().getSimpleName(), DebugHelper.debugFontLink(canvas, settings)) .setLocalGoto(st.getClass().getSimpleName())); document.add(new Chunk(":", f)); document.add(Chunk.NEWLINE); document.add(new Phrase(" non default parameters for " + st.getClass().getSimpleName() + ": " + getParamInfo(st), f)); document.add(Chunk.NEWLINE); if (!st.getConditions().isEmpty()) { document.add(new Phrase(" conditions for this styler: ", f)); } for (StylingCondition sc : (Collection<StylingCondition>) st.getConditions()) { document.add(Chunk.NEWLINE); document.add(new Chunk(" ", f)); document.add( new Chunk(sc.getClass().getSimpleName(), DebugHelper.debugFontLink(canvas, settings)) .setLocalGoto(sc.getClass().getSimpleName())); document.add(Chunk.NEWLINE); document.add(new Phrase(" non default parameters for " + sc.getClass().getSimpleName() + ": " + getParamInfo(sc), f)); } } document.add(Chunk.NEWLINE); document.add(Chunk.NEWLINE); } document.newPage(); document.add(new Phrase("Properties used for the report", f)); document.add(Chunk.NEWLINE); ByteArrayOutputStream bo = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(bo); settings.listProperties(ps); ps.close(); document.add(new Paragraph(bo.toString(), f)); document.newPage(); try { bo = new ByteArrayOutputStream(); ps = new PrintStream(bo); Help.printHelpHeader(ps); ps.close(); document.add(new Paragraph(bo.toString(), f)); Help.printStylerHelp(document, f); Help.printConditionrHelp(document, f); } catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException ex) { log.log(Level.SEVERE, null, ex); } }
From source file:com.vectorprint.report.itext.style.stylers.Shape.java
License:Open Source License
@Override protected void draw(PdfContentByte canvas, float x, float y, float width, float height, String genericTag) { if (getBorderWidth() > 0) { canvas.setLineWidth(getBorderWidth()); canvas.setColorStroke(itextHelper.fromColor((isDrawShadow()) ? getShadowColor() : getBorderColor())); }//from w w w .j av a 2s . c o m if (width == -1) { width = getWidth(); } if (height == -1) { height = getHeight(); } canvas.setColorFill(itextHelper.fromColor((isDrawShadow()) ? getShadowColor() : getColor())); if (isRounded()) { canvas.setLineJoin(PdfContentByte.LINE_JOIN_ROUND); } float xx = x, yy = y; float[] points = getPoints(); float padding = getPadding(); switch (getShape()) { case free: float xdif = x - points[0]; float ydif = y - points[1]; xx = points[0] + xdif; yy = points[1] + ydif; canvas.moveTo(points[0] + xdif, points[1] + ydif); for (int i = 2; i < points.length; i = i + 2) { canvas.lineTo(points[i], points[i + 1]); } break; case bezier: xdif = x - points[0]; ydif = y - points[1]; xx = points[0] + xdif; yy = points[1] + ydif; canvas.moveTo(points[0] + xdif, points[1] + ydif); for (int i = 2; i < points.length; i = i + 4) { canvas.curveTo(points[i] + xdif, points[i + 1] + ydif, points[i + 2] + xdif, points[i + 3] + ydif); } break; case rectangle: if (isClose()) { xx = x - padding; yy = y - padding - height; canvas.rectangle(xx, yy, width + padding * 2, height + padding * 2); } else { canvas.rectangle(x, y, width, height); } break; case roundrectangle: if (isEnclosing()) { xx = x - padding; yy = y - padding - height; canvas.roundRectangle(xx, yy, width + padding * 2, height + padding * 2, getRadius()); } else { canvas.roundRectangle(x, y, width, height, getRadius()); } break; case ellipse: if (isEnclosing()) { xx = x - padding; yy = y - padding - height; canvas.ellipse(xx, yy, x + width + 2 * padding, y + 2 * padding); } else { canvas.ellipse(x, y, x + width, y + height); } break; } if (isClose()) { if (isFill()) { canvas.closePathFillStroke(); } else { canvas.closePathStroke(); } } else { canvas.stroke(); } if (getSettings().getBooleanProperty(Boolean.FALSE, ReportConstants.DEBUG)) { DebugHelper.styleLink(canvas, getStyleClass(), " (styling)", xx, yy, getSettings(), getLayerManager()); } }