Como hacer esto con Itext o alguna otra sugerencia

Iniciado por rub'n, 8 Marzo 2017, 13:18 PM

0 Miembros y 1 Visitante están viendo este tema.

rub'n

Como les va,

Pues estoy diseñando un pdf desde java , con itext 2.1.7, la imagen a continuación:

Que recomiendan usar para programarlo así en pdf




Esto lo programe solo con itext, pero según batik permite realizar los círculos en .svg y de manera más fácil ?











La Solución fue usardescarga XD iText in Action 2nd Edition.pdf con mucho café

Use esta dependencia maven

Código (xml) [Seleccionar]

<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>


Con este código puedo crear un circulo y sobreponerle texto o lo que se desee

Código (java) [Seleccionar]

private void createCircleScoreAndLabel() throws DocumentException, IOException {
final BaseColor colorScoreLabel = PdfTypes.cvssScore(cve);
final String scoreText = PdfTypes.getCVSSLevel(cve.getCvss());
//levelScore                       //x     y     
createRectangle(colorScoreLabel,70f, 540f ,  190f , 40f);
//levelScore              
createTextOver(scoreText,   25,      160f , 550f);

final PdfContentByte textCvssScore = writer.getDirectContent();
textCvssScore.saveState();
textCvssScore.beginText();
textCvssScore.setColorFill(BaseColor.WHITE);
textCvssScore.setFontAndSize(bf, 80);
textCvssScore.endText();
final String score = PdfTypes.formatScore(cve.getCvss());
textCvssScore.showTextAligned(Element.ALIGN_CENTER, score, 160f, 645f, 0f);
textCvssScore.restoreState();

final PdfContentByte circleCvssScore = writer.getDirectContentUnder();
circleCvssScore.saveState();
//underCircle.setLineWidth(0.5f);
circleCvssScore.setColorStroke(BaseColor.BLACK);
circleCvssScore.setColorFill(PdfTypes.cvssScore(cve));
circleCvssScore.circle(160f, 670f, 75f);
circleCvssScore.fill();
circleCvssScore.restoreState();


}


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen