Estoy intentando crear un pdf con la librería itext.
En un momento dado, he de dibujar unos cuadros, así que decidí echar mano de la clase Rectangle.
Pero no se qué debo hacer mal ya que no me los dibuja... bueno, si le pongo un color de relleno sí que salen, pero si les quito el relleno no sale nada... he probado varias maneras de insertar el rectángulo y nada...
Os adjunto las funciones que estoy haciendo servir:
Código:
Este método devuelve una lista de Rectangle, dependiendo de una variable (kind). La variable size es un array que contiene varios parámetros (top, left, width, height...), y se llena en otro método.protected List<Rectangle> makePattern() throws ParseErrorException{ List<Rectangle> ret = new ArrayList<Rectangle>(); if(this.getKind() == 0){ Rectangle r = new Rectangle(19 + this.getSize()[1], 750 - (this.getSize()[0] + this.getSize()[3]), 19 + this.getSize()[1] + this.getSize()[2], 750 - this.getSize()[0]); r.setBorderWidth(3); r.setBorderColor(BaseColor.BLUE); //r.setBackgroundColor(new BaseColor(153, 153, 153)); ret.add(r); return ret; } else if(this.getKind() == 1) return ret; else if(this.getKind() == 2) return ret; else throw new ParseErrorException(ParseErrorException.ERROR); }
Código:
Este es el método que debería insertar los Rectangle. Si les pongo relleno salen, y sino, no me salen...private void addPDF(Printable print, Document doc, PdfContentByte cb) throws ParseErrorException{ if(print.equals(null)) throw new ParseErrorException(ParseErrorException.ERROR); List<Rectangle> list = print.print(); Iterator<Rectangle> it = list.iterator(); while(it.hasNext()){ cb.saveState(); cb.setColorStroke(BaseColor.BLACK); cb.setLineWidth(1); cb.rectangle((Rectangle)it.next()); cb.stroke(); cb.restoreState(); } /*try { while(it.hasNext()) doc.add((Rectangle)it.next()); } catch (DocumentException e) { e.printStackTrace(); }*/ }
¿Qué estoy haciendo mal?
Saludos y gracias