import javax.print.CancelablePrintJob; 
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.JobName; 

public class Main { 
    public static void main(final String[] args) { 
        byte[] test = {0x30, 0x31, 0x32}; 
        DocFlavor docflavor = new DocFlavor("application/octet-stream", "[B"); 
        Doc doc = new SimpleDoc(test, docflavor, null); 
        // Just a dummyprinter 
        PrintService service = PrintServiceLookup.lookupDefaultPrintService(); 
        PrintRequestAttributeSet asset = new HashPrintRequestAttributeSet(); 
        asset.add(new JobName("Testprinting", null)); 
        DocPrintJob job = service.createPrintJob(); 
        try { 
            job.print(doc, asset); 
        } catch (PrintException p) { 
            p.printStackTrace(); 
        } 

        CancelablePrintJob cancelableJob = (CancelablePrintJob) job; 
        try { 
            cancelableJob.cancel(); 
        } catch (PrintException e) { 
            e.printStackTrace(); 
        } 
    } 
} 