Printing pdf files using java -


i want print document using java however, program successful printer not printing anything. why that? solutions this? if printer not pdf supported, there way print pdf file or docx files?

package useprintingserviceinjava; import java.io.bufferedinputstream; import java.io.fileinputstream; import java.io.inputstream;  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.event.printjobadapter; import javax.print.event.printjobevent; public class useprintingserviceinjava {      private static boolean jobrunning = true;      public static void main(string[] args) throws exception {     inputstream is;    = new bufferedinputstream(new fileinputstream("paper_sensor.pdf"));    docflavor flavor = docflavor.input_stream.pdf;    printservice service = printservicelookup.lookupdefaultprintservice();    docprintjob printjob = service.createprintjob();    printjob.addprintjoblistener(new jobcompletemonitor());    doc doc = new simpledoc(is, docflavor.input_stream.autosense, null);    printjob.print(doc, null);    while (jobrunning) {         thread.sleep(1000);   }    system.out.println("exiting app");    is.close();      }      private static class jobcompletemonitor extends printjobadapter {         @override         public void printjobcompleted(printjobevent jobevent) {             system.out.println("job completed");             jobrunning = false;         }     }  } 

this code researched still not print. below code based on research:

package javaapplication24;  import java.io.bufferedinputstream; import java.io.fileinputstream; import java.io.inputstream;  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.event.printjobevent; import javax.print.event.printjoblistener; public class handleprintjobevents {  public static void main(string[] args) throws exception {          // create pdf doc flavor         try ( // open image file                 inputstream = new bufferedinputstream(new fileinputstream("c:\\users\\justine\\documents\\thesis document\\paper_sensor.pdf"))) {             // create pdf doc flavor              docflavor flavor = docflavor.input_stream.pdf;              // locate default print service environment.              printservice service = printservicelookup.lookupdefaultprintservice();              // create , return printjob capable of handling data              // of supported document flavors.              docprintjob printjob = service.createprintjob();              // register listener notified when job complete              printjob.addprintjoblistener(new printjobmonitor());              // construct simpledoc specified              // print data, doc flavor , doc attribute set.              doc doc = new simpledoc(is, docflavor.input_stream.autosense, null);              // print document specified job attributes.              printjob.print(doc, null);         }  }  private static class printjobmonitor implements printjoblistener {      @override     public void printdatatransfercompleted(printjobevent pje) {         // called notify client data has been         // transferred print service, , client may free         // local resources allocated data.     }      @override     public void printjobcanceled(printjobevent pje) {         // called notify client job canceled         // user or program.     }      @override     public void printjobcompleted(printjobevent pje) {         // called notify client job completed successfully.     }      @override     public void printjobfailed(printjobevent pje) {         // called notify client job failed complete         // , have resubmitted.     }      @override     public void printjobnomoreevents(printjobevent pje) {         // called notify client no more events delivered.     }      @override     public void printjobrequiresattention(printjobevent pje) {         // called notify client error has occurred         // user might able fix.     }  } 

}

thank :) *i tried 2 printers still can't print.

i checked code here @ place. cannot print don't have printer around, however, can add printer queue without printing (it starts searching printer infinitely).

especially since said got exception sun.print.printjobflavorexception, seems logical printer indeed not support pdf printing. verify case, try following:

    printservice service = printservicelookup.lookupdefaultprintservice();     int count = 0;     (docflavor docflavor : service.getsupporteddocflavors()) {         if (docflavor.tostring().contains("pdf")) {             count++;         }     }     if (count == 0) {         system.err.println("pdf not supported printer: " + service.getname());         system.exit(1);     } else {         system.out.println("pdf supported printer: " + service.getname());     } 

edit:

i used brother dcp-j552dw. following code worked me, except page margin (which of course can adjusted):

public static void main(string[] args) throws ioexception {     fileinputstream in = new fileinputstream("test.pdf");     doc doc = new simpledoc(in, docflavor.input_stream.autosense, null);     printservice service = printservicelookup.lookupdefaultprintservice();      try {         service.createprintjob().print(doc, null);     } catch (printexception e) {         e.printstacktrace();     } } 

the printer did not respond immediately, setting connection took 20 seconds.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -