2015-04-20 24 views
5

Zajmuję się tworzeniem aplikacji Java. Stworzyłem wykres kołowy za pomocą jFreeChart i dodałem go do pliku pdf utworzonego za pomocą biblioteki iTextPDF, ale nie mogę znaleźć sposobu wyrównania i środka grafiki w pliku pdf. Jest to kod używam dodać wykres:Jak wyrównać grafikę w iTextPDF?

PdfContentByte contentByte = writer.getDirectContent(); 

PdfTemplate template = contentByte.createTemplate(600, 600); 
Graphics2D graphics2d = template.createGraphics(600, 600, new DefaultFontMapper()); 
Rectangle2D rectangle2d = new Rectangle2D.Double(0, 0, 300, 300); 

resultsPieChart.draw(graphics2d, rectangle2d); 

graphics2d.dispose(); 
contentByte.addTemplate(template, 0, 0); 
+0

możliwe duplikat [Jak pozycjonować obiekt PDFGraphis2D w iText?] (Http: // stackoverflow.com/questions/19024681/how-to-position-a-pdfgraphis2d-object-in-itext) –

Odpowiedz

4

możliwość dodawania szablonu na współrzędnych (0, 0). Zwykle jest to lewy dolny róg strony.

Istnieją różne sposoby, aby upewnić się, że wykres pojawi się w innym miejscu. Na przykład: możesz zrobić matematykę i dodać szablon przy innej współrzędnej. Jeśli pracujesz na stronie A4, przekonasz się, że rozmiar grafiki (600 na 600 jednostek użytkownika) nie pasuje do strony (595 na 842 jednostek użytkownika).

Wolę owijania szablonu wewnątrz obiektu Image tak:

Image chart = Image.getInstance(template); 

nie rasteryzację szablonu: jeżeli składa się z danymi wektorowymi, obraz będzie to wektor obraz.

Teraz mogę korzystać z wielu metod convience. Na przykład: możesz przeskalować go tak, aby pasował do strony, możesz wprowadzić wyrównanie w poziomie, możesz nawet dodać obraz jako komórkę do PdfPTable, w którym to przypadku zostanie on automatycznie przeskalowany, aby automatycznie pasował do PdfPCell.

Dalsze czytanie:

+0

Czy możesz pokazać nam pełny przykład? Nie wiem, gdzie powinienem zawinąć szablon. Dzięki! –