The below code will sent a .txt file directly to printer.
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
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.event.PrintJobAdapter;
import javax.print.event.PrintJobEvent;
public class Class3 {
public static void main(String[] args) {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
/* locate a print service that can handle it */
PrintService[] pservices = PrintServiceLookup.lookupPrintServices(flavor, aset);
/* create a print job for the chosen service */
int printnbr = 0;
DocPrintJob pj = pservices[printnbr].createPrintJob();
try {
FileInputStream fis = new FileInputStream("C:\\tmp\\test.txt");
Doc doc = new SimpleDoc(fis, flavor, null);
PrintJobWatcher pjDone = new PrintJobWatcher(pj);
/* print the doc as specified */
pj.print(doc, aset);
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
Some useful links which will discuss deeply about the problem with printing in java and printing jasper reports
http://www.coderanch.com/t/385989/Java-General-intermediate/java/send-raw-data-printer
http://forums.sun.com/thread.jspa?threadID=5343781
http://forums.sun.com/thread.jspa?threadID=613476
http://www.javaworld.com/javaworld/jw-02-2001/jw-0202-print.html
http://www.exampledepot.com/egs/javax.print.attribute.standard/Dest.html
http://www.daniweb.com/forums/thread116599.html#
http://www.java2s.com/Code/Java/Development-Class/PrintingaFile.htm
http://www.exampledepot.com/egs/javax.print.event/JobAttrEvents.html
http://www.java2s.com/Code/Java/2D-Graphics-
GUI/DeterminingWhenaPrintJobHasFinished.htm
Printing an Open office document
http://www.oooforum.org/forum/viewtopic.phtml?t=29466
Printing a Jasper Report
http://blog.marcnuri.com/blog/default/2007/03/22/Choosing-a-printer-programmatically-in-Jasper-Reports
Windows script dealing with printer devices
http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/printing/servers/#MonPrintJobStatus.htm
Friday, June 5, 2009
Subscribe to:
Post Comments (Atom)
thank you. its very usefull for me. thank u very much
ReplyDeletei want print reports from jsp. how can i do?. can u give suggestions?
ReplyDeletewhat is the function of printJobWatcher() ?
ReplyDeleteHi,
ReplyDeleteI am trying to test your code it give me the below error.
Error(38,1): cannot find class PrintJobWatcher
wher I can find the that PrintJobWatcher.
Ill try to use some things and hope it will works, thank you anyway for this post.
ReplyDeleteThank you for sharing, I will try it later.
ReplyDeletejasper reports 2d barcodes
hallo, im useing jasper to print
ReplyDeleteJasperReport jasper_rep = JasperCompileManager.compileReport("your file .jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasper_rep, maps, dataSource);
PrintService defaultPrinter = PrintServiceLookup.lookupDefaultPrintService();
//PrintService print = printerService.printerName(defaultPrinter);
JRPrintServiceExporter exporter1 = new JRPrintServiceExporter();
List jasperPrintList = new ArrayList<>();
jasperPrintList.add(jasperPrint);
System.out.println("Ini adalah printer "+defaultPrinter);
exporter1.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList); //tell jasper what reports to export
exporter1.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE,
defaultPrinter); //tell jasper to export the report to selected printService
exporter1.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET,
defaultPrinter.getAttributes());
exporter1.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG,
Boolean.FALSE); //who doesn't like self-explanatory attributes!
exporter1.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG,
Boolean.FALSE);
exporter1.exportReport();
it works to printer dot matrix.