I am trying to print a custom label but am struggling to get this right with all the margins and the sizing:

i have a label 1205 w x 895 h (72 DPI)
with the label, to be printed on, size being 4.035 inch x 2.992 inch

the code i have is:

System.out.println("Printing: "+files[i]);
// Get image from file
final String imagepath = "C:\\images\\colour\\"+files[i].getName();
final Image image = new ImageIcon(imagepath).getImage();
// Start Printing
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pPageFormat = printJob.defaultPage();
Paper paper = pPageFormat.getPaper();
paper.setSize(4.035,2.992); // label (page) size
paper.setImageableArea(0.00, 0.00, 290, 216); // size in pixels of the label
printJob.setPrintable(new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex != 0) {
 return NO_SUCH_PAGE;
graphics.drawImage(image, 0, 0, 290, 216, null);
	return PAGE_EXISTS;
try {
} catch (PrinterException e1) {             
System.out.println("Printed: "+files[i]);

Unfortunately the label prints but with a massive margin arround the image so most of the image is missing. Can anyone give me any pointers or hints? Thank you in advance