Ajax (1) Apex Class (12) Apex Trigger (2) Community (2) Home Page (1) HTML (4) Integration (3) JS (7) KB (1) Label (1) Licenses (1) Listing (1) Log (1) OOPs (5) Sharing (1) Static Resource (1) Test Class (3) URI (1) Visualforce (10)

Friday 30 May 2014

Print Using Java

//package com.javacodegeeks.snippets.desktop;

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.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.event.PrintJobAdapter;
import javax.print.event.PrintJobEvent;

public class SetCopiesNumberForPrintJob {

private static boolean jobRunning = true;

public static void main(String[] args) throws Exception {

// Open the image file

  InputStream is = new BufferedInputStream(new FileInputStream("myfile.pdf"));

  // create a PDF doc flavor

  DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

  // Locate the default print service for this environment.

  PrintService service = PrintServiceLookup.lookupDefaultPrintService();

  // Create and return a PrintJob capable of handling data from

  // any of the supported document flavors.

  DocPrintJob printJob = service.createPrintJob();

  // register a listener to get notified when the job is complete

  printJob.addPrintJobListener(new JobCompleteMonitor());

  // Construct a SimpleDoc with the specified 

  // print data, doc flavor and doc attribute set.

  Doc doc = new SimpleDoc(is, flavor, null);

  int numCopies = 5;

  // set up the attributes

  PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();

  attributes.add(new Copies(numCopies));

  // Print a document with the specified job attributes.

  printJob.print(doc,attributes);
  
 
  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;
}
}

}

No comments:

Post a Comment