2015-04-20 17 views
5

Tôi đang phát triển một Ứng dụng Java. Tôi tạo ra một biểu đồ hình tròn bằng cách sử dụng jFreeChart và thêm nó vào một tập tin pdf được tạo ra với thư viện iTextPDF, nhưng tôi không thể tìm thấy một cách làm phù hợp và trung tâm de đồ họa bên trong pdf. Đây là mã tôi đang sử dụng để thêm biểu đồ:Làm cách nào để căn chỉnh đồ họa trong 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

thể trùng lặp của [Làm thế nào để xác định vị trí một đối tượng PDFGraphis2D trong iText?] (Http: // stackoverflow.com/questions/19024681/how-to-position-a-pdfgraphis2d-object-in-itext) –

Trả lời

4

Bạn đang thêm mẫu tại tọa độ (0, 0). Thông thường, đây là góc dưới bên trái của trang.

Có nhiều cách khác nhau để đảm bảo rằng biểu đồ của bạn xuất hiện ở vị trí khác. Ví dụ: bạn có thể làm Toán và thêm mẫu tại một tọa độ khác. Nếu bạn đang làm việc với một trang A4, bạn sẽ khám phá ra rằng kích thước của đồ họa của bạn (600 của 600 đơn vị người dùng) không thực sự phù hợp với trang (595 bởi 842 đơn vị người dùng).

Tôi thích gói mẫu bên trong một đối tượng Image như thế này:

Image chart = Image.getInstance(template); 

này không rasterize mẫu của bạn: nếu nó bao gồm dữ liệu vector, hình ảnh sẽ là một hình ảnh vector.

Bây giờ tôi có thể sử dụng nhiều phương pháp đối phó. Ví dụ: bạn có thể chia tỷ lệ cho vừa với trang, bạn có thể giới thiệu căn chỉnh theo chiều ngang, thậm chí bạn có thể thêm hình ảnh dưới dạng ô vào PdfPTable trong trường hợp này nó sẽ được tự động thu nhỏ để tự động sửa đổi PdfPCell.

Đọc thêm:

+0

Bạn có thể cho chúng tôi xem ví dụ đầy đủ không? Tôi không biết tôi cần bọc mẫu ở đâu. Cảm ơn! –

Các vấn đề liên quan