Printing in JLayeredPane

Okay I have a JLayeredPane which I want to print. There are two layers to it which each has a panel on it. The panels have some 2D graphics and components on it which I want to print out.
When I print, all I get is a blank piece of paper, obviously cause the stuff I want printed isn't being rendered. Should the print method in the JLayeredPane automatically include the graphics from all its layers, or do I have to do something manually to include the two layers that I want rendered and printed?

Maybe the getGraphics just works for the DefaultPane, so if that's the case, how do I add the graphics from each layer to the Graphics object in the print method?

Similar Messages

  • Printing to a PDF

    I have the following class:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.print.*;
    public class PrintUtilities implements Printable {
      private Component componentToBePrinted;
      public static void printComponent(Component c) {
        new PrintUtilities(c).print();
      public PrintUtilities(Component componentToBePrinted) {
        this.componentToBePrinted = componentToBePrinted;
      public void print() {
        PrinterJob printJob = PrinterJob.getPrinterJob();
           PageFormat pageFormat = new PageFormat();
           if(printJob.pageDialog(printJob.defaultPage()).getOrientation()==pageFormat.LANDSCAPE){
             try{
                     pageFormat.setOrientation(pageFormat.LANDSCAPE);
              catch(java.lang.IllegalStateException ise){
                      System.out.println("Print error...\n"+ise);
          printJob.setPrintable(this,pageFormat);
           if (printJob.printDialog()){
               try{
                    printJob.print();
               catch(java.awt.print.PrinterException pe){
                    System.out.println("Could not print...\n" + pe);
    /*   printJob.setPrintable(this);
        if (printJob.printDialog())
          try {
            printJob.print();
          } catch(PrinterException pe) {
            System.out.println("Error printing: " + pe);
      public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
         if (pageIndex > 0) {
         return(NO_SUCH_PAGE);
         else {
              Graphics2D g2d = (Graphics2D)g;
              Toolkit toolkit = componentToBePrinted.getToolkit();
              /* scaling is added to fit printout of maximized birdseye
              window onto a 8.5 X 11 sheet of paper
              Dimension screenSize = toolkit.getScreenSize();
              //fit screen to printable (landscape) page
              double scaleX = (pageFormat.getImageableWidth()) / (screenSize.getWidth());
              double scaleY = (pageFormat.getImageableHeight())/(screenSize.getHeight());
              if(scaleX>.3){
                   double scaleFactor = java.lang.Math.min((double)(screenSize.getWidth())/
                   (double)(pageFormat.getImageableWidth()),(double)(screenSize.getHeight())/(double)(pageFormat.getImageableHeight()));
                   g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
                   g2d.scale(.7/scaleFactor,.95/scaleFactor);
              else{
                   double scaleFactor = java.lang.Math.min((double)(screenSize.getWidth())/
                   (double)(pageFormat.getImageableWidth()),(double)(screenSize.getHeight())/(double)(pageFormat.getImageableHeight()));
                   g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
                   g2d.scale(.85/scaleFactor,.95/scaleFactor);
              /** It is important that translation be done before the scaling.
              * Failure to follow this order will result in unusual behavior
              * such as strange cropping
              //g2d.translate(pageFormat.getImageableX(),
              //pageFormat.getImageableY());
              //g2d.scale(scaleX,scaleY);
              // speeds up printing process
              disableDoubleBuffering(componentToBePrinted);
              componentToBePrinted.printAll(g2d);
              enableDoubleBuffering(componentToBePrinted);
              return(PAGE_EXISTS);
      public static void disableDoubleBuffering(Component c) {
        RepaintManager currentManager = RepaintManager.currentManager(c);
        currentManager.setDoubleBufferingEnabled(false);
      public static void enableDoubleBuffering(Component c) {
        RepaintManager currentManager = RepaintManager.currentManager(c);
        currentManager.setDoubleBufferingEnabled(true);
    }It prints well for the most part. The problem is that I have Adobe Acrobat 6 Professional and I want to
    create a pdf using the print class that I have, however it doesn't work. I click the print button in my GUI, and
    it calls the PrintUtilities class functions, and I select the printer to be the Adobe PDF Writer, but then I get the following exception message when I click 'ok' to print:
    java.lang.IllegalArgumentException: Zero length string passed to TextLayout cons
    tructor.
    at java.awt.font.TextLayout.<init>(TextLayout.java:471)
    at sun.java2d.pipe.OutlineTextRenderer.drawString(OutlineTextRenderer.ja
    va:67)
    at sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:32)
    at sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2534)
    at sun.print.ProxyGraphics2D.drawString(ProxyGraphics2D.java:720)
    at javax.swing.plaf.basic.BasicGraphicsUtils.drawStringUnderlineCharAt(B
    asicGraphicsUtils.java:234)
    at javax.swing.plaf.basic.BasicLabelUI.paintEnabledText(BasicLabelUI.jav
    a:81)
    at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:164)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
    at javax.swing.JComponent.paintComponent(JComponent.java:541)
    at javax.swing.JComponent.printComponent(JComponent.java:908)
    at javax.swing.JComponent.paint(JComponent.java:812)
    at javax.swing.JComponent.print(JComponent.java:891)
    at javax.swing.JComponent.paintChildren(JComponent.java:651)
    at javax.swing.JComponent.printChildren(JComponent.java:921)
    at javax.swing.JComponent.paint(JComponent.java:820)
    at javax.swing.JComponent.print(JComponent.java:891)
    at javax.swing.JComponent.paintChildren(JComponent.java:651)
    at javax.swing.JComponent.printChildren(JComponent.java:921)
    at javax.swing.JComponent.paint(JComponent.java:820)
    at javax.swing.JComponent.print(JComponent.java:891)
    at javax.swing.JComponent.paintChildren(JComponent.java:651)
    at javax.swing.JComponent.printChildren(JComponent.java:921)
    at javax.swing.JComponent.paint(JComponent.java:820)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
    at javax.swing.JComponent.print(JComponent.java:891)
    at javax.swing.JComponent.paintChildren(JComponent.java:651)
    at javax.swing.JComponent.printChildren(JComponent.java:921)
    at javax.swing.JComponent.paint(JComponent.java:820)
    at javax.swing.JComponent.print(JComponent.java:891)
    at java.awt.GraphicsCallback$PrintCallback.run(GraphicsCallback.java:32)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:
    60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97
    at java.awt.Container.print(Container.java:1367)
    at sun.awt.windows.WComponentPeer.print(WComponentPeer.java:223)
    at sun.awt.windows.WCanvasPeer.print(WCanvasPeer.java:97)
    at sun.awt.windows.WPanelPeer.print(WPanelPeer.java:26)
    at java.awt.GraphicsCallback$PeerPrintCallback.run(GraphicsCallback.java
    :85)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:
    60)
    at java.awt.Component.printAll(Component.java:2532)
    at PrintUtilities.print(PrintUtilities.java:95)
    at sun.print.RasterPrinterJob.printPage(RasterPrinterJob.java:1628)
    at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1085)
    at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:986)
    at PrintUtilities.print(PrintUtilities.java:32)
    at PrintUtilities.printComponent(PrintUtilities.java:9)
    at gui.actionPerformed(gui.java:8369)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
    86)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ctButton.java:1839)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1
    113)
    at javax.swing.plaf.basic.BasicMenuItemUI$MenuDragMouseHandler.menuDragM
    ouseReleased(BasicMenuItemUI.java:1006)
    at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:584)
    at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:481)
    at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:428)
    at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManag
    er.java:277)
    at javax.swing.plaf.basic.BasicMenuUI$MouseInputHandler.mouseReleased(Ba
    sicMenuUI.java:360)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:2
    31)
    at java.awt.Component.processMouseEvent(Component.java:5100)
    at java.awt.Component.processEvent(Component.java:4897)
    at java.awt.Container.processEvent(Container.java:1569)
    at java.awt.Component.dispatchEventImpl(Component.java:3615)
    at java.awt.Container.dispatchEventImpl(Container.java:1627)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    at java.awt.Container.dispatchEventImpl(Container.java:1613)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

    SIr
    I am also doing the same to print a component. I need to print a table data. When i send myTable object
    PrintUtility.printComponent(myTable).
    It just prints as much table data as fits into 1 page. But i want to print whole table data that may be multipage. Please suggest something if can. thanx

  • Printing in Mac OS X

    Hello all,
    I created a printable class that works in Windows and Linux, but for some reason will not work on Mac OS X. It either prints a blank page or throws a nasty exception:
    Exception in thread "Thread-0" java.lang.NullPointerException
    at javax.swing.plaf.metal.BumpBuffer.fillBumpBuffer(MetalBumps.java:183)
    at javax.swing.plaf.metal.BumpBuffer.<init>(MetalBumps.java:148)
    at javax.swing.plaf.metal.MetalBumps.getBuffer(MetalBumps.java:71)
    at javax.swing.plaf.metal.MetalBumps.paintIcon(MetalBumps.java:97)
    at javax.swing.plaf.metal.MetalScrollBarUI.paintThumb(MetalScrollBarUI.java:242)
    at javax.swing.plaf.basic.BasicScrollBarUI.paint(BasicScrollBarUI.java:301)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
    at javax.swing.JComponent.paintComponent(JComponent.java:541)
    at javax.swing.JComponent.paint(JComponent.java:808)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1312)
    at apple.awt.CComponent.print(CComponent.java:130)
    at apple.awt.ContainerModel.print(ContainerModel.java:633)
    at java.awt.GraphicsCallback$PeerPrintCallback.run(GraphicsCallback.java:85)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at java.awt.Component.printAll(Component.java:2532)
    at PrintUtilities.print(PrintUtilities.java:111)
    at apple.awt.CPrinterJob.printToPathGraphics(CPrinterJob.java:509)
    JavaAWT: Assertion failure: Java exception thrown
    JavaAWT: File src/macosx/native/apple/awt/util/AWTException.m; Line 40
    JavaAWT: Assertion failure: _javaException
    JavaAWT: File src/macosx/native/apple/awt/util/AWTException.m; Line 48
    2004-06-28 10:34:43.295 java[448] PMSessionEndDocumentNoDialog failed (error code = -30879)
    2004-06-28 10:34:43.297 java[448] *** -[NSAutoreleasePool dealloc]: Exception ignored while releasing an object in an autorelease pool: NSInternalInconsistencyException Failed to end PMPrintContext
    *** malloc[448]: Deallocation of a pointer not malloced: 0xbfffc7c0; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug
    I am using Java 1.4.2. Any ideas?
    Here is my code:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.print.*;
    public class PrintUtilities implements Printable {
      private Component componentToBePrinted;
      public static void printComponent(Component c) {
        new PrintUtilities(c).print();
      public PrintUtilities(Component componentToBePrinted) {
        this.componentToBePrinted = componentToBePrinted;
      public void print() {
        PrinterJob printJob = PrinterJob.getPrinterJob();
           PageFormat pageFormat = new PageFormat();
           printJob.setPrintable(this, pageFormat);
           if(printJob.pageDialog(printJob.defaultPage()).getOrientation()==pageFormat.LANDSCAPE){
             try{
                     pageFormat.setOrientation(pageFormat.LANDSCAPE);
              catch(java.lang.IllegalStateException ise){
                      System.out.println("Print error...\n"+ise);
          printJob.setPrintable(this,pageFormat);
           if (printJob.printDialog()){
               try{
                    printJob.print();
               catch(java.awt.print.PrinterException pe){
                    System.out.println("Could not print...\n" + pe);
      public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
         if (pageIndex > 0) {
         return(NO_SUCH_PAGE);
         else {
              Graphics2D g2d = (Graphics2D)g;
              Toolkit toolkit = componentToBePrinted.getToolkit();
              /* scaling is added to fit printout of maximized birdseye
              window onto a 8.5 X 11 sheet of paper
              Dimension screenSize = toolkit.getScreenSize();
              /** It is important that translation be done before the scaling.
              * Failure to follow this order will result in unusual behavior
              * such as strange cropping
              g2d.translate(pageFormat.getImageableX(),
              pageFormat.getImageableY());
              g2d.scale(.45,.45);
              //g2d.scale(scaleX,scaleY);
              // speeds up printing process
              disableDoubleBuffering(componentToBePrinted);
              componentToBePrinted.printAll(g2d);
              enableDoubleBuffering(componentToBePrinted);
              return(PAGE_EXISTS);
      public static void disableDoubleBuffering(Component c) {
        RepaintManager currentManager = RepaintManager.currentManager(c);
        currentManager.setDoubleBufferingEnabled(false);
      public static void enableDoubleBuffering(Component c) {
        RepaintManager currentManager = RepaintManager.currentManager(c);
        currentManager.setDoubleBufferingEnabled(true);
    }Thanks

    pharmastat59 wrote:
    Trouble printint to a Dell Laser MFP 1815dn.
    Check if the Dell driver is PPC. If it is, and if you installed the first version of Apple's latest Security Update, then that's probably where the issue is, because it broke Rosetta, the software which runs PPC code under SL. Re-install the Sec Update (the problem is fixed in v1.1, which replaced the goofy version on Apple's servers) through Software Update or by downloading it again, then re-install the Dell driver, and try again.
    Apple stuff is great, except for their casual disregard of their customers who want to use any product that is not Apple
    I'm sorry, but that's non-sense. I'm no fan of Apple, but they're no better and no worse than any large corporation of this type. Mostly, they do things which make business sense as they see it -- which is exactly what you'd want, if you had serious money invested in Apple shares -- wouldn't you?
    In this instance, it was up to Dell to release an Intel Mac driver for this printer/scanner, which is, what, 5 or 6 years old? If they didn't, it was probably because they decided it didn't make business sense for them to spend money on developing and testing one. Keep in mind that Dell and Apple and Microsoft and all the rest are in business to make money, not to support every single customer for ever and ever and a day.

  • Create an image of a JLayeredPane 's content

    hi there,
    we have a problem here: we'd like to create one image out of a JLayeredPane`s content. but the only thing we get is a gray box which size is the size of the JLayeredPane.
    the purpose is: we're developing a graphic tool where you can draw and arrange objects in the JLayeredPane(which is in a JScrollPane). and now we're implementing the print-function which allows to print the graphs over several pages, therefore it is neccessary to have an image(*.jpeg) for our printpreview-window. the preview-window and the printfuntion are nearly implemented and the only problem is that we cant make an image of the JLayerdPane's content.
    maybe you have an idea or codesamples...
    thanks a lot in advance!!
    george

    1. Getting any JComponent to render onto a buffered image isn't a problem -- just call paint, passing it a graphics object backed by that buffered image.
    2. Writing an image to a file isn't a problem: use javax.imageio.ImageIO.
    Some code:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
    import javax.swing.border.*;
    public class Ex {
        public static void main(String[] args) {
            JFrame f = new JFrame("Ex");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            final JLayeredPane pane = new JLayeredPane();
            Border b = BorderFactory.createEtchedBorder();
            pane.add(createLabel("DEFAULT_LAYER", b, 00, 10), JLayeredPane.DEFAULT_LAYER);
            pane.add(createLabel("PALETTE_LAYER", b, 40, 20), JLayeredPane.PALETTE_LAYER);
            pane.add(createLabel("MODAL_LAYER", b, 80, 30), JLayeredPane.MODAL_LAYER);
            pane.add(createLabel("POPUP_LAYER", b, 120, 40), JLayeredPane.POPUP_LAYER);
            pane.add(createLabel("DRAG_LAYER", b, 160, 50), JLayeredPane.DRAG_LAYER);
            f.getContentPane().add(pane);
            JPanel south = new JPanel();
            JButton btn = new JButton("save");
            btn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent evt) {
                    save(pane);
            south.add(btn);
            f.getContentPane().add(south, BorderLayout.SOUTH);
            f.setSize(400,300);
            f.show();
        static JLabel createLabel(String text, Border b, int x, int y) {
            JLabel label = new JLabel(text);
            label.setOpaque(true);
            label.setBackground(Color.WHITE);
            label.setBorder(b);
            label.setBounds(x,y, 100,20);
            return label;
        static void save(JComponent comp) {
            int w = comp.getWidth(), h = comp.getHeight();
            BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2 = image.createGraphics();
            g2.setPaint(Color.MAGENTA);
            g2.fillRect(0,0,w,h);
            comp.paint(g2);
            g2.dispose();
            try {
                ImageIO.write(image, "jpeg", new File("image.jpeg"));
            } catch(IOException e) {
                e.printStackTrace();
    }Why does the saved image have a magenta background? JLayerPane, by default, is non-opaque. You can set it to be opaque and choose its background color, as you like.

  • Newbie problem - printing JTextArea

    Dear Collective Wisdom,
    I'm befuddled and need help. I've been learning Java on my own. I'm new to Java programming and am probably committing a typical novice's error.
    I have a JTextArea defined in a JScrollPane in a JLayerPane in a JFrame. I have a button and event handler defined to create a print job with that text. The print dialog box gets called up in the browser, but when I do a print preview, the browser just sits there, spinning in what appears to be an infinite loop. I'm including the code segment below. If anyone has experience with this, and can either spot a major flaw or has some code that does the job, I'd be very grateful.
    [object definitions]
    /*Stuff for the Journal Window*/
    javax.swing.JFrame JournalFrame = new javax.swing.JFrame();
    javax.swing.JLayeredPane JournalFrameLayeredPane = new javax.swing.JLayeredPane();
    javax.swing.JLabel JournalFrameBackgroundLabel = new JLabel();
    javax.swing.ImageIcon JournalFrameBackgroundIcon = new ImageIcon();
    javax.swing.JTextArea JournalTextArea = new javax.swing.JTextArea();
    javax.swing.JScrollPane JournalScrollPane = new javax.swing.JScrollPane(JournalTextArea);
    javax.swing.JButton JournalFrameClose = new JButton("Close Journal");
    javax.swing.JButton JournalFramePrint = new JButton("Print Journal");
    /*Stuff for the Info Window */
    javax.swing.JFrame InfoFrame = new javax.swing.JFrame();
    javax.swing.JLayeredPane InfoFrameLayeredPane = new javax.swing.JLayeredPane();
    javax.swing.JLabel InfoFrameBackgroundLabel = new JLabel();
    javax.swing.ImageIcon InfoFrameBackgroundIcon = new ImageIcon();
    javax.swing.JTextArea InfoTextArea = new javax.swing.JTextArea();
    javax.swing.JScrollPane InfoScrollPane = new javax.swing.JScrollPane(InfoTextArea);
    javax.swing.JButton InfoFrameClose = new JButton("Close ");
    [procedure defintions and code]
    public void JournalFramePrintMouseClicked(java.awt.event.MouseEvent e){
    // Set up print job and execute
    PrintJob pjob = getToolkit().getPrintJob(JournalFrame, "Printing Journal", null);
    if (pjob != null) {
    Graphics pg = pjob.getGraphics();
    if (pg != null) {
    String s = JournalTextArea.getText();
    printLongString (pjob, pg, s);
    pg.dispose();
    pjob.end();
    // Print string to graphics via printjob
    // Does not deal with word wrap or tabs
    void printLongString (PrintJob pjob, Graphics pg, String s) {
    int pageNum = 1;
    int linesForThisPage = 0;
    int linesForThisJob = 0;
    // Note: String is immutable so won't change while printing.
    if (!(pg instanceof PrintGraphics)) {
    throw new IllegalArgumentException ("Graphics context not PrintGraphics");
    StringReader sr = new StringReader (s);
    LineNumberReader lnr = new LineNumberReader (sr);
    String nextLine;
    int pageHeight = pjob.getPageDimension().height;
    Font helv = new Font("Helvetica", Font.PLAIN, 12);
    //have to set the font to get any output
    pg.setFont (helv);
    FontMetrics fm = pg.getFontMetrics(helv);
    int fontHeight = fm.getHeight();
    int fontDescent = fm.getDescent();
    int curHeight = 0;
    try {
    do {
    nextLine = lnr.readLine();
    if (nextLine != null) {
    if ((curHeight + fontHeight) > pageHeight) {
    // New Page
    System.out.println ("" + linesForThisPage + " lines printed for page " + pageNum);
    pageNum++;
    linesForThisPage = 0;
    pg.dispose();
    pg = pjob.getGraphics();
    if (pg != null) {
    pg.setFont (helv);
    curHeight = 0;
    curHeight += fontHeight;
    if (pg != null) {
    pg.drawString (nextLine, 0, curHeight - fontDescent);
    linesForThisPage++;
    linesForThisJob++;
    } else {
    System.out.println ("pg null");
    } while (nextLine != null);
    } catch (EOFException eof) {
    // Fine, ignore
    } catch (Throwable t) { // Anything else
    t.printStackTrace();
    System.out.println ("" + linesForThisPage + " lines printed for page " + pageNum);
    System.out.println ("pages printed: " + pageNum);
    System.out.println ("total lines printed: " + linesForThisJob);
    }// End print job

    Use freely downloadable smart jprint class AtDocumentPrinter from http://www.activetree.com. This package alos allows you to print contents of any kind of JTextComponent such as JTextField, JTextArea, JEditorPane, and JTextPane.
    It breaks the text, images and forms into multiple pages by breaking horizontally and vertically. JTable printing is specially interesting.

  • Font of JLayeredPane and color of JOptionPane.showMessageDialog

    how can I change font from bold to regular and vise versa in Caption of JLayeredPane
    and how can I change color of JOptionPane.showMessageDialog?
    Thank You

    George, you have been extremely helpful.  You don't know how much I appreciate your knowledge and patience.
    1. Seems like going this option, we would be better served just making a web-based form.  I'll pass that on to the Powers-That-Be.
    2. Not to imply these folks are computer-illiterate, but the users completing the forms are plumbers, electricians, locksmiths, carpenters, etc.  In fact, they get a good number of printed, hand-written, snail-mailed forms submitted.   I really don't know the likelihood of getting these users to download and install Reader 11.
    Again, thanks so much for your time and expertise.
    Dami

  • Printing components found on a JPanel

    hy,
    I have created a JPanel, where I have inserted some buttons
    onto it. How can I print the contents of the JPanel (That is
    print the buttons found on the JPanel
    thanks

    OK, its like this... with a JLayeredPane you have a DRAG_LAYER which is used to handle this type
    of activity... by promoting the component to this layer you are gauranteed that it will be painted last, (ie..
    overpaint the other layers.)
    In order to model this type of behaviour, you will need to:
    1) Override your panel's panitComponents() method and paint all except the active panel..
    2) Finally send the paintComponent() to the active component...
    :)

  • JLayeredPane not recieving mouse Events.

    When I try to add a MouseListener to a JLayeredPane, it does not pick up the mouse events at all. Or when I even try to add it to the only JPanel I added to the LayeredPane, still no mouse events. I never set the glassPane to visible, so I have no idea why the mouse events aren't going through.

    Your code won't compile. For one the layered constructor is within your MouseAdapter anonymous class. You are far better off posting compilable code here.
    edit: also, you are not overriding MouseAdapter methods. That would help get your code to work.
    Try compiling with an @Override annotation to see what I mean:
      private MouseAdapter exitListener = new MouseAdapter()
        @Override
        public void MousePressed(MouseEvent e) // does this compile?  MousePressed != mousePressed
          System.out.print("yrs");
      }capitalization matters:
    MousePressed != mousePressed
    Edited by: Encephalopathic on May 9, 2009 3:02 PM

  • About JLayeredPane

    Hi, everyone, i have a problem with my program, can anyone give me a little bit of help?
    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.net.*;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import java.awt.event.*;
    public class OutLook implements ActionListener
    public JFrame frame = new JFrame("Interactive Locator");
    //These are the buttons available on the ToolBar.
    public ImageIcon image1 = new ImageIcon("icon/image6.gif");
    public ImageIcon image2 = new ImageIcon("icon/image1.gif");
    public ImageIcon image3 = new ImageIcon("icon/image2.gif");
    public ImageIcon image4 = new ImageIcon("icon/image3.gif");
    public ImageIcon image5 = new ImageIcon("icon/image4.gif");
    public ImageIcon image6 = new ImageIcon("icon/image5.gif");
    public ImageIcon image7 = new ImageIcon("icon/image7.gif");
    public ImageIcon image8 = new ImageIcon("icon/image8.gif");
    public JButton go = new JButton(image1);
    public JButton elevator = new JButton(image2);
    public JButton toilet = new JButton(image3);
    public JButton union = new JButton(image4);
    public JButton print = new JButton(image5);
    public JButton guide = new JButton(image6);
    public JButton transport = new JButton(image7);
    public JButton search = new JButton(image8);
    public JTree Tree = new JTree();
         public JTabbedPane MessagePane = new JTabbedPane(JTabbedPane.BOTTOM);
    public DrawTabbedPane drawPane = new DrawTabbedPane();
    public JPanel pane = new JPanel();
    public JScrollPane scroll = new JScrollPane(pane);
    public JLayeredPane rightPane = new JLayeredPane();
    public OutLook()
         rightPane.add(drawPane);
         rightPane.add(scroll);
         rightPane.setLayer(drawPane, 0);
         rightPane.setLayer(scroll, 1);
    ImageIcon image = new ImageIcon("image.jpg");
    JLabel label = new JLabel(image);
    pane.add(label);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel Basement = new JPanel();
    //This is the ToolBar for the program.
    MyToolBar MapTool = new MyToolBar();
    go.addActionListener(this);
    elevator.addActionListener(this);
    toilet.addActionListener(this);
    union.addActionListener(this);
    transport.addActionListener(this);
    print.addActionListener(this);
    guide.addActionListener(this);
    search.addActionListener(this);
         MapTool.add(go);
         MapTool.add(elevator);
         MapTool.add(toilet);
         MapTool.add(union);
         MapTool.add(transport);
         MapTool.add(print);
         MapTool.add(guide);
         MapTool.add(search);
         BorderLayout bord = new BorderLayout();
         Basement.setLayout(bord);
              JScrollPane leftPane =
              new JScrollPane(Tree,
                        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
              leftPane.setPreferredSize(new Dimension(300,700));
              rightPane.setPreferredSize(new Dimension(700,500));
              JScrollPane bottomPane =
              new JScrollPane(MessagePane);
              bottomPane.setPreferredSize(new Dimension(700,200));
         JSplitPane pane1 = new JSplitPane(
                             JSplitPane.VERTICAL_SPLIT, rightPane, bottomPane);
              pane1.setDividerLocation(400);
         pane1.setOneTouchExpandable(true);
              JSplitPane pane2 = new JSplitPane(
                   JSplitPane.HORIZONTAL_SPLIT, leftPane, pane1);
              pane2.setDividerLocation(200);
              pane2.setOneTouchExpandable(true);
    JEditorPane Travel = new JEditorPane();
    JEditorPane Land = new JEditorPane();
    JEditorPane Description = new JEditorPane();
    MessagePane.addTab("Travel Detail" , Travel);
    MessagePane.addTab("Landmark" , Land);
    MessagePane.addTab("Department description" , Description);
    Basement.add("Center",pane2);
    Basement.add("North", MapTool);
    frame.setContentPane(Basement);
    frame.setSize(1000,700);
    setLookAndFeel();
    frame.setVisible(true);
    //Strings of user's input
    public String input1;
    public String input2;
    //create a dialog to take user input
    public UserInput input = new UserInput(frame);
         input.ok.addActionListener(this);
         input.setVisible(false);
    //change the interface to window's look and feel
    private void setLookAndFeel()
         try
              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              SwingUtilities.updateComponentTreeUI(frame);
         catch(Exception e)
              System.err.println("Couldn't use the system " + "look and feel: " + e);
    public void actionPerformed(ActionEvent evt)
         Object source = evt.getSource();
         if (source == go)
    input.setVisible(true);
    input.setLocationRelativeTo(frame);
    else if(source == input.ok)
                   //Action when user press ok button
                                  input1 = input.start.getText();
                                  input2 = input.Destination.getText();
                                  if(input1.equals("")&&!input2.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "You forgot to enter start position!",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else if(input2.equals("")&&!input1.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "You forgot to enter destination position",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else if(input1.equals("")&&input2.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "please enter both start and destination position",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else
                                  {   showPath show = new showPath();
                                  if(show.isExist(input1) == false&&show.isExist(input2) == true)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "There is no such start position exist!",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else if(show.isExist(input1) == true&&show.isExist(input2) == false)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "There is no such destination position exist!",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else if(show.isExist(input1) == false&&show.isExist(input2) == false)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "Both of your input are not exist",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else
                                            drawPane.getThePath(input1, input2);
                                            drawPane.drawThePath(input1, input2);
    // rightPane.moveToFront(drawPane);
                                            input.setVisible(false);
                                       input.dispose();
    else if(source == guide)
                   // rightPane.moveToFront(scroll);
    public static void main(String[] args)
    OutLook good = new OutLook();
    i can compile well, but no matter i press the ok button in my dialog or i press the guide button, nothing shows up in the layerPane, please can anyone help, i really dont know where gone wrong, thx

    Hi, everyone, i have a problem with my program, can anyone give me a little bit of help?
    import java.awt.*;
    import java.awt.geom.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.net.*;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import java.awt.event.*;
    public class OutLook implements ActionListener
    public JFrame frame = new JFrame("Interactive Locator");
    //These are the buttons available on the ToolBar.
    public ImageIcon image1 = new ImageIcon("icon/image6.gif");
    public ImageIcon image2 = new ImageIcon("icon/image1.gif");
    public ImageIcon image3 = new ImageIcon("icon/image2.gif");
    public ImageIcon image4 = new ImageIcon("icon/image3.gif");
    public ImageIcon image5 = new ImageIcon("icon/image4.gif");
    public ImageIcon image6 = new ImageIcon("icon/image5.gif");
    public ImageIcon image7 = new ImageIcon("icon/image7.gif");
    public ImageIcon image8 = new ImageIcon("icon/image8.gif");
    public JButton go = new JButton(image1);
    public JButton elevator = new JButton(image2);
    public JButton toilet = new JButton(image3);
    public JButton union = new JButton(image4);
    public JButton print = new JButton(image5);
    public JButton guide = new JButton(image6);
    public JButton transport = new JButton(image7);
    public JButton search = new JButton(image8);
    public JTree Tree = new JTree();
         public JTabbedPane MessagePane = new JTabbedPane(JTabbedPane.BOTTOM);
    public DrawTabbedPane drawPane = new DrawTabbedPane();
    public JPanel pane = new JPanel();
    public JScrollPane scroll = new JScrollPane(pane);
    public JLayeredPane rightPane = new JLayeredPane();
    public OutLook()
         rightPane.add(drawPane);
         rightPane.add(scroll);
         rightPane.setLayer(drawPane, 0);
         rightPane.setLayer(scroll, 1);
    ImageIcon image = new ImageIcon("image.jpg");
    JLabel label = new JLabel(image);
    pane.add(label);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel Basement = new JPanel();
    //This is the ToolBar for the program.
    MyToolBar MapTool = new MyToolBar();
    go.addActionListener(this);
    elevator.addActionListener(this);
    toilet.addActionListener(this);
    union.addActionListener(this);
    transport.addActionListener(this);
    print.addActionListener(this);
    guide.addActionListener(this);
    search.addActionListener(this);
         MapTool.add(go);
         MapTool.add(elevator);
         MapTool.add(toilet);
         MapTool.add(union);
         MapTool.add(transport);
         MapTool.add(print);
         MapTool.add(guide);
         MapTool.add(search);
         BorderLayout bord = new BorderLayout();
         Basement.setLayout(bord);
              JScrollPane leftPane =
              new JScrollPane(Tree,
                        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
              leftPane.setPreferredSize(new Dimension(300,700));
              rightPane.setPreferredSize(new Dimension(700,500));
              JScrollPane bottomPane =
              new JScrollPane(MessagePane);
              bottomPane.setPreferredSize(new Dimension(700,200));
         JSplitPane pane1 = new JSplitPane(
                             JSplitPane.VERTICAL_SPLIT, rightPane, bottomPane);
              pane1.setDividerLocation(400);
         pane1.setOneTouchExpandable(true);
              JSplitPane pane2 = new JSplitPane(
                   JSplitPane.HORIZONTAL_SPLIT, leftPane, pane1);
              pane2.setDividerLocation(200);
              pane2.setOneTouchExpandable(true);
    JEditorPane Travel = new JEditorPane();
    JEditorPane Land = new JEditorPane();
    JEditorPane Description = new JEditorPane();
    MessagePane.addTab("Travel Detail" , Travel);
    MessagePane.addTab("Landmark" , Land);
    MessagePane.addTab("Department description" , Description);
    Basement.add("Center",pane2);
    Basement.add("North", MapTool);
    frame.setContentPane(Basement);
    frame.setSize(1000,700);
    setLookAndFeel();
    frame.setVisible(true);
    //Strings of user's input
    public String input1;
    public String input2;
    //create a dialog to take user input
    public UserInput input = new UserInput(frame);
         input.ok.addActionListener(this);
         input.setVisible(false);
    //change the interface to window's look and feel
    private void setLookAndFeel()
         try
              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              SwingUtilities.updateComponentTreeUI(frame);
         catch(Exception e)
              System.err.println("Couldn't use the system " + "look and feel: " + e);
    public void actionPerformed(ActionEvent evt)
         Object source = evt.getSource();
         if (source == go)
    input.setVisible(true);
    input.setLocationRelativeTo(frame);
    else if(source == input.ok)
                   //Action when user press ok button
                                  input1 = input.start.getText();
                                  input2 = input.Destination.getText();
                                  if(input1.equals("")&&!input2.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "You forgot to enter start position!",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else if(input2.equals("")&&!input1.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "You forgot to enter destination position",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else if(input1.equals("")&&input2.equals(""))
                                       JOptionPane.showMessageDialog(frame,
                                       "please enter both start and destination position",
                                       "input error",
                                       JOptionPane.ERROR_MESSAGE);
                                  else
                                  {   showPath show = new showPath();
                                  if(show.isExist(input1) == false&&show.isExist(input2) == true)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "There is no such start position exist!",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else if(show.isExist(input1) == true&&show.isExist(input2) == false)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "There is no such destination position exist!",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else if(show.isExist(input1) == false&&show.isExist(input2) == false)
                                            JOptionPane.showMessageDialog(frame,
                                                                               "Both of your input are not exist",
                                                                               "search error",
                                       JOptionPane.ERROR_MESSAGE);
                                       else
                                            drawPane.getThePath(input1, input2);
                                            drawPane.drawThePath(input1, input2);
    // rightPane.moveToFront(drawPane);
                                            input.setVisible(false);
                                       input.dispose();
    else if(source == guide)
                   // rightPane.moveToFront(scroll);
    public static void main(String[] args)
    OutLook good = new OutLook();
    i can compile well, but no matter i press the ok button in my dialog or i press the guide button, nothing shows up in the layerPane, please can anyone help, i really dont know where gone wrong, thx

  • Can our hp laserjet enterprise 500 color printer m551use 67lb card stock?

    The printer specifications list card stock but no weights. 
    This question was solved.
    View Solution.

    Hello,
    the required media weight is not supported by the printer.
    As you may find listed within the Media Weight specification below, the printer support up to 58 lb media.
    Media weight:
    Tray 1: 16 to 58 lb (plain); 28 to 58 lb (glossy);
    Tray 2: 16 to 43 lb (plain paper); 28 to 58 lb (glossy paper)
     You may find the product specification below:
    http://h10010.www1.hp.com/wwpc/us/en/sm/WF06b/18972-18972-3328060-15077-236268-4184772-4184773-41847...
    Regards,
    Shlomi
    Say thanks by clicking the Kudos thumb up in the post.
    If my post resolve your problem please mark it as an Accepted Solution

  • Print Quote Report

    Hi All,
    I have a requirement to develop the custom print Quote Report. When i review the standard pring quote report ,I found a call like <?call-template:TermsTemplate?>.
    This statment itself is getting all the Terms and Conditions for that report. when i looked in the ASOPRTXSL.xsl, I see the below statement
    <xsl:template name="TermsTemplate">
    <xsl:call-template name="PrintContractTerms"/>
    </xsl:template>
    I am pretty new to XSL, dont know what's happening here. Please help me ASAP
    I have also posted this question in BI Publisher but did not get any respose . Please Help
    Thanks

    If you want to create a custom report using concurrent program then refer:
    http://apps2fusion.com/apps/apps/63-xml-publisher-concurrent-program-xmlp
    If you want to create a custom report using OAF page then refer:
    http://apps2fusion.com/at/51-ps/260-integrating-xml-publisher-and-oa-framework
    -Anand

  • HELP to Open and Print automatic a REPORT

    Hello, I'm a Portuguese Developer, and i've a challenge, that is, i want to open REPORT by FORMS in RDF format and i want to open and print automatic way, i do not want to open, and then have to go print button to pint them.
    I want to open by FORM way and print automatic and close imediatly.
    HEP ME PLEASE!
    Thank you

    Aslam o Alikum (Hi)
    Ofcourse you can do this by specifing system parameters like DESTYPE=Printer and DESNAME=PrinterName
    Replace PrinterName with you printer name
    See System Parameters in Reports Under Data Model

  • Queation Regaring Print Quote Report

    Hi All,
    I have a requirement to develop the custom print Quote Report. When i review the standard pring quote report ,I found a call like <?call-template:TermsTemplate?>.
    This statment itself is getting all the Terms and Conditions for that report. when i looked in the ASOPRTXSL.xsl, I see the below statement
    <xsl:template name="TermsTemplate">
    <xsl:call-template name="PrintContractTerms"/>
    </xsl:template>
    I am pretty new to XSL, dont know what's happening here. Please help me ASAP
    Thanks

    Can anyone answer this please. This is urgent . Thanks

  • Questions on Print Quote report

    Hi,
    I'm fairly new to Oracle Quoting and trying to get familiar with it. I have a few questions and would appreciate if anyone answers them
    1) We have a requirement to customize the Print Quote report. I searched these forums and found that this report can be defined either as a XML Publisher report or an Oracle Reports report depending on a profile option. Can you please let me know what the name of the profile option is?
    2) When I select the 'Print Quote' option from the Actions drop down in the quoting page and click Submit I get the report printed and see the following URL in my browser.
    http://<host>:<port>/dev60cgi/rwcgi60?PROJ03_APPS+report=/proj3/app/appltop/aso/11.5.0/reports/US/ASOPQTEL.rdf+DESTYPE=CACHE+P_TCK_ID=23731428+P_EXECUTABLE=N+P_SHOW_CHARGES=N+P_SHOW_CATG_TOT=N+P_SHOW_PRICE_ADJ=Y+P_SESSION_ID=c-RAuP8LOvdnv30grRzKqUQs:S+P_SHOW_HDR_ATTACH=N+P_SHOW_LINE_ATTACH=N+P_SHOW_HDR_SALESUPP=N+P_SHOW_LN_SALESUPP=N+TOLERANCE=0+DESFORMAT=RTF+DESNAME=Quote.rtf
    Does it mean that the profile in our case is set to call the rdf since it has reference to ASOPQTEL.rdf in the above url?
    3) When you click on submit button do we have something like this in the jsp code: On click call ASOPQTEL.rdf. Is the report called using a concurrent program? I want to know how the report is getting invoked?
    4) If we want to customize the jsp pages can you please let me know the steps involved in making the customizations and testing them.
    Thanks and Appreciate your patience
    -PC

    1) We have a requirement to customize the Print Quote report. I searched these forums and found that this report can be defined either as a XML Publisher report or an Oracle Reports report depending on a profile option. Can you please let me know what the name of the profile option is?
    I think I posted it in one of the threads2) When I select the 'Print Quote' option from the Actions drop down in the quoting page and click Submit I get the report printed and see the following URL in my browser.
    http://<host>:<port>/dev60cgi/rwcgi60?PROJ03_APPS+report=/proj3/app/appltop/aso/11.5.0/reports/US/ASOPQTEL.rdf+DESTYPE=CACHE+P_TCK_ID=23731428+P_EXECUTABLE=N+P_SHOW_CHARGES=N+P_SHOW_CATG_TOT=N+P_SHOW_PRICE_ADJ=Y+P_SESSION_ID=c-RAuP8LOvdnv30grRzKqUQs:S+P_SHOW_HDR_ATTACH=N+P_SHOW_LINE_ATTACH=N+P_SHOW_HDR_SALESUPP=N+P_SHOW_LN_SALESUPP=N+TOLERANCE=0+DESFORMAT=RTF+DESNAME=Quote.rtf
    Does it mean that the profile in our case is set to call the rdf since it has reference to ASOPQTEL.rdf in the above url?
    Yes, your understanding is correct.3) When you click on submit button do we have something like this in the jsp code: On click call ASOPQTEL.rdf. Is the report called using a concurrent program? I want to know how the report is getting invoked?
    No, there is no conc program getting called, you can directly call a report in a browser window, Oracle reports server will execute the report and send the HTTP response to the browser.4) If we want to customize the jsp pages can you please let me know the steps involved in making the customizations and testing them.
    This is detailed in many threads.Thanks
    Tapash

  • Printing list view in ical

    I use mail and ical for everything now. Everything is fine except When I want to print the "list view" which shows my “to dos”. It displays the URL the “do to” is attached to in mail. I use notes often in mail and enter to dos in the notes so they will have URL links. The link only becomes a nuisance when I want to print, otherwise it’s very useful.
    Why would the long URL paths display when in print view???!!!!! It doesn’t make any sense.
    Is there anything I can do?
    Thank you

    ecernek,
    There is no event list option on iCal like the one on the iPhone.
    That number means that you have an event invitation. Use iCal>View>Show Notifications to choose what to do with the notification.

Maybe you are looking for

  • Email hyperlink using %SI_VIEWER_URL% with JAVA SSO

    Hi, I am attempting to email a Crystal report via email from within InfoView as link in the message body utilizing the %SI_VIEWER_URL% viewer hyperlink. The recipient receives the link but fails with the following error "An error has occurred: java.l

  • Best target format to use for importing less-than-cinema-quality video?

    I shot 4.5 hours of conference video on an AVCHD consumer camera. The original footage uses about 14.5 GB on the camera's SD card. The video was shot at 1440 x 1080, 16 x 9. When I do a log and transfer, the files balloon to 250 GB and are saved as A

  • Control Minimum No.of Records in an XML Publisher Report

    Hi I need to set the minimum no.of records in a XML Publisher Report. Please help me on this. Regards Nakul.V

  • How to retrieve/gather images from a non-ZEN server?

    Our main ZENworks server is 4.01 and it's running out of space for images. We have an OES server that I'd like to use to push & pull images. I looked at the Security tab / Upload restrictions in the Server Policy and thought I might be able to define

  • Color of columns in grid

    i have displayed data in grid from multiple tables. now i want to display the primary keys in color in the report. can anyone tell me how to do it. thanks pushpa