Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: rub'n en 8 Marzo 2017, 13:18 PM

Título: Como hacer esto con Itext o alguna otra sugerencia
Publicado por: rub'n en 8 Marzo 2017, 13:18 PM
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

(http://i65.tinypic.com/2ur3v2h.jpg)


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


(http://i67.tinypic.com/sesjo4.jpg)

(https://files.slack.com/files-pri/T0T8MDAMA-F4K1GP8UW/pasted_image_at_2017_03_14_04_14_pm.png)

(https://files.slack.com/files-pri/T0T8MDAMA-F4TFF9NTH/pdfelhackernet.png)




La Solución fue usardescarga XD  (https://github.com/zxh/iText/blob/master/iText%20in%20Action%202nd%20Edition.pdf) 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();


}