Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4464660

No print services found on linux

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.4.0
    • client-libs
    • 2d
    • x86
    • linux



      Name: bsC130419 Date: 05/31/2001


      java version "1.4.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b65)
      Java HotSpot(TM) Client VM (build 1.4.0-beta-b65, mixed mode)


        To reproduce simply compile and run the code below on a Linux system (I used
      Debian for my tests) with lpr or lprng installed.

      I used the below code to test the printing services and got no an array of print
      services of 0 length, meaning no printers could be found.

      import java.io.*;
      import java.awt.*;
      import java.net.*;
      import java.awt.image.*;
      import java.awt.print.*;
      import javax.print.*;
      import javax.print.attribute.*;
      import javax.print.attribute.standard.*;

      public class Print2DPrinterJob implements Printable {

      public Print2DPrinterJob() {

      /* Construct the print request specification.
      * The print data is a Printable object.
      * the request additonally specifies a job name, 2 copies, and
      * landscape orientation of the media.
      */
      PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
      aset.add(OrientationRequested.LANDSCAPE);
      aset.add(new Copies(2));
      aset.add(new JobName("My job", null));

      /* Create a print job */
      PrinterJob pj = PrinterJob.getPrinterJob();
      pj.setPrintable(this);
      /* locate a print service that can handle the request */
      PrintService[] services =
      PrinterJob.lookupPrintServices();

      if (services.length > 0) {
      System.out.println("selected printer " + services[0].getName());
      try {
      pj.setPrintService(services[0]);
      pj.pageDialog(aset);
      if(pj.printDialog(aset)) {
      pj.print(aset);
      }
      } catch (PrinterException pe) {
      System.err.println(pe);
      }
      }
              else
                  System.out.println ("No printers available");
      }

      public int print(Graphics g,PageFormat pf,int pageIndex) {

      if (pageIndex == 0) {
      Graphics2D g2d= (Graphics2D)g;
      g2d.translate(pf.getImageableX(), pf.getImageableY());
      g2d.setColor(Color.black);
      g2d.drawString("example string", 250, 250);
      g2d.fillRect(0, 0, 200, 200);
      return Printable.PAGE_EXISTS;

      } else {
      return Printable.NO_SUCH_PAGE;
      }
      }

      public static void main(String arg[]) {

      Print2DPrinterJob sp = new Print2DPrinterJob();
      }
      }
      (Review ID: 125375)
      ======================================================================

            jgodinez Jennifer Godinez (Inactive)
            bstrathesunw Bill Strathearn (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: