I thought i'll post some java today.I recently required this piece of code for some application, so i thought i'll share this with you , incase you need it anytime.This code should help you print any image file directly to your printer in java.This program uses the default printer to print.The code is pretty straight forward.Not much tweaking necessary except for "yourimagefilename.png".Hope this helps

import java.io.FileInputStream;

import java.io.IOException;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;

public class PrintImage {
static public void main(String args[]) throws Exception {
try {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));

PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);

if (pss.length == 0)
throw new RuntimeException("No printer services available.");

PrintService ps = pss[0];
System.out.println("Printing to " + ps);

DocPrintJob job = ps.createPrintJob();

FileInputStream fin = new FileInputStream("YOurImageFileName.PNG");
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);

job.print(doc, pras);

fin.close();
} catch (IOException ie) {
ie.printStackTrace();
} catch (PrintException pe) {
pe.printStackTrace();
}
}
}

1 comments

Anonymous said... @ July 11, 2013 at 7:38 AM

Thanks a lot!

Post a Comment