public Object run() { try { /* Write to a temporary file which will be spooled to * the printer then deleted. In the case that the file * is not removed for some reason, request that it is * removed when the VM exits. */ spoolFile = Files.createTempFile("javaprint", ".ps").toFile(); spoolFile.deleteOnExit(); result = new FileOutputStream(spoolFile); return result; } catch (IOException ex) { // If there is an IOError we subvert it to a PrinterException. pex = new PrinterIOException(ex); } return null; }
public OutputStream run() { try { /* Write to a temporary file which will be spooled to * the printer then deleted. In the case that the file * is not removed for some reason, request that it is * removed when the VM exits. */ spoolFile = Files.createTempFile("javaprint", ".ps").toFile(); spoolFile.deleteOnExit(); result = new FileOutputStream(spoolFile); return result; } catch (IOException ex) { // If there is an IOError we subvert it to a PrinterException. pex = new PrinterIOException(ex); } return null; }
public Object run() { try { /* Write to a temporary file which will be spooled to * the printer then deleted. In the case that the file * is not removed for some reason, request that it is * removed when the VM exits. */ spoolFile = File.createTempFile("javaprint", ".ps", null); spoolFile.deleteOnExit(); result = new FileOutputStream(spoolFile); return result; } catch (IOException ex) { // If there is an IOError we subvert it to a PrinterException. pex = new PrinterIOException(ex); } return null; }
public Object run() { try { /** * Spool to the printer. */ if (spoolFile == null || !spoolFile.exists()) { pex = new PrinterException("No spool file"); return null; } String fileName = spoolFile.getAbsolutePath(); String execCmd[] = printExecCmd(mDestination, mOptions, mNoJobSheet, getJobNameInt(), 1, fileName); Process process = Runtime.getRuntime().exec(execCmd); process.waitFor(); spoolFile.delete(); } catch (IOException ex) { pex = new PrinterIOException(ex); } catch (InterruptedException ie) { pex = new PrinterException(ie.toString()); } return null; }
public Object run() { if (spoolFile == null || !spoolFile.exists()) { pex = new PrinterException("No spool file"); return null; } try { /** * Spool to the printer. */ String fileName = spoolFile.getAbsolutePath(); String execCmd[] = printExecCmd(mDestination, mOptions, mNoJobSheet, getJobNameInt(), 1, fileName); Process process = Runtime.getRuntime().exec(execCmd); process.waitFor(); final int result = process.exitValue(); if (0 != result) { handleProcessFailure(process, execCmd, result); } } catch (IOException ex) { pex = new PrinterIOException(ex); } catch (InterruptedException ie) { pex = new PrinterException(ie.toString()); } finally { spoolFile.delete(); } return null; }
/** * Prints the contents of the array of ints, 'data' * to the current page. The band is placed at the * location (x, y) in device coordinates on the * page. The width and height of the band is * specified by the caller. Currently the data * is 24 bits per pixel in BGR format. */ protected void printBand(byte[] bgrData, int x, int y, int width, int height) throws PrinterException { mPSStream.println(IMAGE_SAVE); /* Create a PS string big enough to hold a row of pixels. */ int psBytesPerRow = 3 * width; while (psBytesPerRow > MAX_PSSTR) { psBytesPerRow /= 2; } mPSStream.println(psBytesPerRow + IMAGE_STR); /* Scale and translate the unit image. */ mPSStream.println("[" + width + " 0 " + "0 " + height + " " + x + " " + y +"]concat"); /* Color Image invocation. */ mPSStream.println(width + " " + height + " " + 8 + "[" + width + " 0 " + "0 " + -height + " 0 " + height + "]" + "/imageSrc load false 3 colorimage"); /* Image data. */ int index = 0; byte[] rgbData = new byte[width*3]; try { for(int i = 0; i < height; i++) { index = swapBGRtoRGB(bgrData, index, rgbData); byte[] encodedData = rlEncode(rgbData); byte[] asciiData = ascii85Encode(encodedData); mPSStream.write(asciiData); mPSStream.println(""); } } catch (IOException e) { throw new PrinterIOException(e); } mPSStream.println(IMAGE_RESTORE); }