Iweb  FTP,Printing probems with Iweb .Pages to Web

I feel like writing Steve Jobs.Problems -I had Iweb 08 , upgraded to Iweb09 because of the press how FTP was solved. I cannot upload to my server. I have spent hours talking to Apple Care reps.I have tried several FTP softwares other than Iweb.One rep told me they do have a problem with FTP out of Iweb to Microsoft base servers.Solution given and tried - first publish to a folder on the desktop and burn a cd for the host provider.Does not work. Next publish to documents and burn a CD and still garbage on the CD for my host provider. I have images and get the message"can't create the file shapeimage- 2png and the results all my images that are referenced as Fig 1 and so on well the figures get place all over and not in the proper location on all the CD burnt. So I cannot publish to the host. Second as of today and after two hours talking to Apple Care with Iweb, I have lessons as lesson 1 2 3 and so on. Well the lessons show up in full in view , but when i go to print if the lesson is 15 pages it will only show 9 in the preview print window and only print 9 pages but viewing the lesson in Iweb all pages show up as all 15. I tried all the recommendations from Apple Care . They do not know why the problem exist. They said maybe with Iweb 09 they limit how many pages you can have in a text box? They have no written notes that this is the case though. I think the problem has to do with something related to in preview it shows the pages as being PDF now when it scroll through the preview showing the pages and maybe this somehow as a default will not allow printing all pages. So I have 15 pages to print out in Iweb and when I go to print it previews and stops at page 9, but the remaining pages still there to view in Iweb. Page allows me to send the info in Iweb out now but it excludes the images so sort of messy. It did not allow this s before . I upgraded to Iweb 09 and have Pages 08, and bet if I install Pages 09 I wont be able to send anything from Iweb to Pages. They do allow you to send information from Pages to Iweb so why not the reverse?My last though is to send from Iweb to Pages, do the massive amount of images again but in Pages and then can I send this as PDF to a Microsoft server and get my website up and running. The problem is not my host it is Apple. FTP does not work ? I have intel chips . Any way to exit Iweb to go to a Microsoft server some clever way here?The monster problem with Iweb is that if you want even a small business everyone has to have the same password so if you want access limited to maybe paying subscribers forget it . Everyone has to be given the same password access so they can pass the password around and every is there for free. Anyone know of a tag on product to handle E-mail password allocation instead of hiring a heavy PHP programmer?. Still going to have a host out of Iweb and this seems impossible. Any help from the knowledgeable - 25 hours wasted so far here.

I'm turning your post into paragraphs so I (and other peiople) can actually understand it:
Problems -I had Iweb 08 , upgraded to Iweb09 because of the press how FTP was solved. I cannot upload to my server. I have spent hours talking to Apple Care reps.
I have tried several FTP softwares other than Iweb.One rep told me they do have a problem with FTP out of Iweb to Microsoft base servers.Solution given and tried - first publish to a folder on the desktop and burn a cd for the host provider.Does not work.
Next publish to documents and burn a CD and still garbage on the CD for my host provider. I have images and get the message "can't create the file shapeimage- 2png" and the results all my images that are referenced as Fig 1 and so on. well the figures get place all over and not in the proper location on all the CD burnt. So I cannot publish to the host.
Second as of today and after two hours talking to Apple Care with Iweb, I have lessons as lesson 1 2 3 and so on. Well the lessons show up in full in view , but when i go to print if the lesson is 15 pages it will only show 9 in the preview print window and only print 9 pages but viewing the lesson in Iweb all pages show up as all 15.
I tried all the recommendations from Apple Care . They do not know why the problem exist. They said maybe with Iweb 09 they limit how many pages you can have in a text box? They have no written notes that this is the case though. I think the problem has to do with something related to in preview it shows the pages as being PDF now when it scroll through the preview showing the pages and maybe this somehow as a default will not allow printing all pages.
So I have 15 pages to print out in Iweb and when I go to print it previews and stops at page 9, but the remaining pages still there to view in Iweb. Page allows me to send the info in Iweb out now but it excludes the images so sort of messy.
It did not allow this s before . I upgraded to Iweb 09 and have Pages 08, and bet if I install Pages 09 I wont be able to send anything from Iweb to Pages. They do allow you to send information from Pages to Iweb so why not the reverse?
My last though is to send from Iweb to Pages, do the massive amount of images again but in Pages and then can I send this as PDF to a Microsoft server and get my website up and running. The problem is not my host it is Apple.
FTP does not work ? I have intel chips . Any way to exit Iweb to go to a Microsoft server some clever way here?
The monster problem with Iweb is that if you want even a small business everyone has to have the same password so if you want access limited to maybe paying subscribers forget it . Everyone has to be given the same password access so they can pass the password around and every is there for free.
Anyone know of a tag on product to handle E-mail password allocation instead of hiring a heavy PHP programmer?. Still going to have a host out of Iweb and this seems impossible. Any help from the knowledgeable - 25 hours wasted so far here.
So from what I can make out, your problems are:
1. Uploading to FTP/publishing
2. Printing
3. iWeb and Pages use
4. Password protection in iWeb
Ok, so for a website you don't want to be burning things to CD or converting a whole site into PDF format. You want individual webpages with proper formats. There's little point in exporting from iWeb to Pages because if you want the webpage info on paper, you print it. If you want to send it to someone, you send them your webpage address. (However, copying from Pages to iWeb is useful for easy publishing from existing documents or drafts).
Your print preview may be a problem, but as long as everything's printed it doesn't make any difference? Not sure what you're trying to say here, and not sure why you're printing webpages anyway? You can take screenshots of your webpage if that's easier.
It sounds like you are trying to cram far too much information in. Try uploading a very simple page with a couple of lines of text via FTP and see if that works. Which webhost are you using, or are you doing it all on an internal server? If you are, I recommend trying to use the web to upload something just to check.
iWeb isn't designed for businesses, and in fact is against Apple's terms of service. It sounds like you really need to employ someone who knows what they're doing. If you don't want to spend the money on a programmer, try hiring a couple of university students studying business/IT, or at least have a temp to consult and tell you what you need. It sounds like you've got yourself into a real tangle.

Similar Messages

  • Problems with error-page in web.xml and page caching

    Having a few problems with error pages and web.xml with browsers caching the error pages and strange errors coming out of weblogic.servlet.intenal.WebAppServletContext
    I'm trying to set a web app up so that all http errors and all exceptions are routed thruogh predefined resources. For now, I'm simply send 400 errors to 400.html and the ServletException, IOException and RuntimeException to respective html pages.
    What I'm finding is that the error codes work fine but the exceptions are only be routed to the correct error page for the first call to the servlet after server restart.
    So for example, I have my servlet throwing a ServletException as a test case. The weblogic server log shows that ServletException is thrown, and the correct error page for ServletExceptions is shown.
    If I change the Servlet code to throw IOException in place of SevletException, the weblogic.log shows that IOExceptyion is being thrown (so the servlet has deployed successfully), however the Servletxception error page is shown on the browser.
    I'm using IE6 and I've changed the setting such that a new page is requested every time using the tools-internet options-temp internet files-settings option to "check for new versions of stored pages: Every visit to the page".
    Despite this, the servlet exception error page still appears.
    If you clear the cache from the temp intenet files->delete files IE option, the correct errror page will be shown so it appears that the browser cache is being used after all.
    everytime I delete the temp intenet files I get the correct error page on the first request after but then not after that.
    I have implemented the service method for this test to throw the exceptions - does this make a differecne?
    As a test, I have moved the imlpementation to the doGet method instead bu I now get a strange eror from weblogic comlpaining about an arrayOutOfBoundsException because eror codes in the web.xml are not supported! - see error above.
    Any help is appreciated

    After further investigation: -
    There are no problems with error pages based on error codes, only error exceptions.
    As a test case, I have a service method in a servlet throwing either one of the three exception types that servlets can throw (Runtime, Servlet & IO) the following rules apply. The exception to be thrown is hardcoded and is changed and the web app rebuilt each time. The correct web.xml has been deployed to the app server (checked through console). the webapp is being redeployed correctly - this can be seen in the weblogic log, where the correct exception is reported.
    I am using WLS 8.1, Servlet 2.3, JDK 1.4.1_02
    In all cases, the weblogic log reports that the servlet is throwing the exception as expected.
    Despite having set error-page for exception javax.servlet.ServletException, the exceptions are diverted to the error page that has been set up for http error code 500
    The error page for ServletException is therefore never reached.
    I have the browser set to request pages every time it is asked.
    Once the servlet has thrown an IOException, the only way to get the browser to report an IO or Runtime exception error-page is to clear the browser cache. Restarting the server has no effect.
    Once the servlet has responded with ANY exception, it is not possible to get it to report a ServletException (which is incorrectly reported as a 500 anyway) unless the cache is cleared. Restarting the server has no effect.
    In the case where the servlet throws ServletException, it has no root exception. The servlet 2.3 spec states that if ServletException is thrown but cannot be found in the error pages, the root excpetion will be extracted and the error page list traversed again. Knowing that the RuntimeException error page is correct shown when RuntimeException is throwm, I have nested this inside the ServletException, however error page for http error 500 is still shown.
    I don't believe this is a WLS 8.1 problem, as the console shows that the correct exception is thrown each time. this is backed up by the fact that the correct exception page is thrown when the cache is cleared regardless of what exception was previousdly thrown by the servlet. This excludes ServletException which is always incorrectly thrown as a 500.

  • Print JTable with Multiple pages and rows

    I took the printing example at http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html#pe and modified it a bit to include the following:
    1) To Print Multiple pages
    2) To wrap lines that is too long for the column
    3) To print with a more proffesional style, so that it doesn't look like a screen capture is printed
    4) To align the numbers to the right and center column headings
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.print.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.Dimension;
    import javax.print.*;
    import javax.print.attribute.*;
    import javax.print.attribute.standard.*;
    import java.text.*;
    public class Report implements Printable
         private final int LEFT_ALIGN = -1;
         private final int CENTER_ALIGN = 0;
         private final int RIGHT_ALIGN = 1;
         private JFrame frame;
         private JTable tableView;
         private String lastPrintDate;
         private Font defaultFont;
         private Font headerFont;
         private Font footerFont;
         private int headerHeight;
         private int footerHeight;
         private int cellBuffer = 5;
         private boolean first_pass;
         private ArrayList pages;
         public Report()
              frame = new JFrame("Sales Report");
              frame.addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent e)
                        System.exit(0);
              final String[] headers =
                   "ID",
                   "Description",
                   "open price",
                   "latest price",
                   "End Date",
                   "Quantity"
              int count = 0;
              final Object[][] data =
                   {new Integer(count++), "Box of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of BirosBox of Biros ppppppppppppppp", "1.00", "4.99", new Date(), new Integer(200000)},
                   {new Integer(count++), "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++), "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++), "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++), "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++), "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)},
                   {new Integer(count++), "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++), "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++), "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++), "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++), "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)},
                   {new Integer(count++), "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++), "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++), "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++), "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++), "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)},
                   {new Integer(count++), "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++), "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++), "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++), "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)},
                   {new Integer(count++),  "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++),  "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)},
                   {new Integer(count++),  "Blue Biro", "0.10", "0.14", new Date(), new Integer(1)},
                   {new Integer(count++),  "legal pad", "1.00", "2.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "tape", "1.00", "1.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "stapler", "4.00", "4.49", new Date(), new Integer(1)},
                   {new Integer(count++),  "Box of Biros", "1.00", "4.99", new Date(), new Integer(2)}
              TableModel dataModel = new AbstractTableModel()
                   public int getColumnCount() { return headers.length; }
                   public int getRowCount() { return data.length;}
                   public Object getValueAt(int row, int col)
                        return data[row][col];
                   public String getColumnName(int column)
                        return headers[column];
                   public Class getColumnClass(int col)
                        return getValueAt(0,col).getClass();
                   public boolean isCellEditable(int row, int col)
                        return (col==1);
                   public void setValueAt(Object aValue, int row, int column)
                        data[row][column] = aValue;
              tableView = new JTable(dataModel);
              JScrollPane scrollpane = new JScrollPane(tableView);
              scrollpane.setPreferredSize(new Dimension(500, 80));
              frame.getContentPane().setLayout(new BorderLayout());
              frame.getContentPane().add(BorderLayout.CENTER,scrollpane);
              frame.pack();
              JButton printButton= new JButton();
              printButton.setText("print me!");
              frame.getContentPane().add(BorderLayout.SOUTH,printButton);
              // for faster printing turn double buffering off
              RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false);
              printButton.addActionListener( new ActionListener()
                   public void actionPerformed(ActionEvent evt)
                        doPrint();
              frame.setVisible(true);
          * Reset variables before printing
         private void prepareForPrint()
              pages = new ArrayList();
              first_pass = true;
          * Display a print dialog with some hardcoded defaults
          * The print fonts are also hardcoded
         public void doPrint()
              try
                   String jobName = "Java Report";
                   defaultFont = new Font("Arial", Font.PLAIN, 8);
                   footerFont = new Font("Arial", Font.PLAIN, 6);
                   headerFont = new Font("Arial", Font.BOLD, 10);
                   PrinterJob prnJob = PrinterJob.getPrinterJob();
                   prnJob.setPrintable(this);
                   PrintRequestAttributeSet prnSet = new HashPrintRequestAttributeSet();
                   prnSet.add(new Copies(1));
                   prnSet.add(new JobName(jobName, null));
                   prnSet.add(MediaSizeName.ISO_A4);
                   PageFormat pf = prnJob.defaultPage();
                   pf.setOrientation(java.awt.print.PageFormat.PORTRAIT);
                   prnJob.setJobName(jobName);
                   PrintService[] services = PrinterJob.lookupPrintServices();
                   if (services.length > 0)
                        if (prnJob.printDialog(prnSet))
                              * Get print date
                             String dateFormat = "dd/MM/yyyy HH:mm:ss";
                             DateFormat m_DateFormat = new SimpleDateFormat(dateFormat);
                             lastPrintDate = m_DateFormat.format(new Date()).toString();
                             prepareForPrint();
                             prnJob.print(prnSet);
                   else
                        JOptionPane.showMessageDialog(frame, "No Printer was found!!", "Printer Error", JOptionPane.ERROR_MESSAGE);
                        return;
              catch (PrinterException e)
                   e.printStackTrace();
         public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException
               * Check if this is the first time the print method is called for this print action.
               * It is not guaranteed that the print will be called with synchronous pageIndex'es,
               * so we need to calculate the number of pages and which rows appear on which pages.
               * Then the correct page will be printed regardless of which pageIndex is sent through.
              if (first_pass)
                   calcPages(g, pageFormat);
              first_pass = false;
              // Stop printing if the pageIndex is out of range
              if (pageIndex >= pages.size())
                   return NO_SUCH_PAGE;
              Graphics2D     g2 = (Graphics2D) g;
              g2.setColor(Color.black);
              // The footer will be one line at the bottom of the page, cater for this.
              g2.setFont(footerFont);
              footerHeight = g2.getFontMetrics().getHeight() + g2.getFontMetrics().getDescent();
              g2.setFont(defaultFont);
              FontMetrics fontMetrics = g2.getFontMetrics();
              int fontHeight = fontMetrics.getHeight();
              int fontDescent = fontMetrics.getDescent();
              double pageHeight = pageFormat.getImageableHeight() + pageFormat.getImageableY();
              double pageWidth = pageFormat.getImageableWidth();
              double tableWidth = (double) tableView.getColumnModel().getTotalColumnWidth();
              // Shrink or expand the table to fit the page width
              double scale = pageWidth / (tableWidth+ (cellBuffer * tableView.getColumnCount()));
              // Calculate the width in pixels for each column
              double[] columnWidths = new double[tableView.getColumnCount()];
              for(int i = 0; i < tableView.getColumnCount(); i++)
                   columnWidths[i] = (double)tableView.getColumnModel().getColumn(i).getWidth() * scale;
              // Reset the view to the start of the page
              g2.translate(0, 0);
              // Draw a rectangle to see the printable area
              g2.draw3DRect((int)pageFormat.getImageableX(),
                        (int)pageFormat.getImageableY(),
                        (int)pageFormat.getImageableWidth(),
                        (int)pageFormat.getImageableHeight(),
                        false);
              // Calculate the header height
              g2.setFont(headerFont);
              fontMetrics = g2.getFontMetrics();
              // Print the headers and retreive the starting position for the data
              int next_row = printLine(g2, pageFormat, fontMetrics, -1, (int)pageFormat.getImageableY() + fontHeight, columnWidths);
              g2.setFont(defaultFont);
              fontMetrics = g2.getFontMetrics();
              // Start printing the detail
              ArrayList page = (ArrayList)pages.get(pageIndex);
              int start = ((Integer)page.get(0)).intValue();
              int end = ((Integer)page.get(1)).intValue();
              for (int i = start; i <= end; i++)
                   next_row = printLine(g2, pageFormat, fontMetrics, i, next_row, columnWidths);
              // Print the footer
              g2.setFont(footerFont);
              String pageFooter = "Page " + (pageIndex + 1) + " - " + lastPrintDate;
              g2.drawString(pageFooter,
                             (int)pageFormat.getWidth() / 2 - (fontMetrics.stringWidth(pageFooter) / 2),
                             (int)(pageHeight - fontDescent));
              return PAGE_EXISTS;
          * We can't guarantee that the same amount of rows will be displayed on each page,
          * the row heights are dynamic and may wrap onto 2 or more lines.
          * Thus we need to calculate the height of each row and then test how may rows
          * fit on a specific page. eg. Page 1 contains rows 1 to 10, Page 2 contains rows 11 to 15 etc.
         public void calcPages(Graphics g, PageFormat pageFormat) throws PrinterException
              Graphics2D     g2 = (Graphics2D) g;
              g2.setColor(Color.black);
              // The footer will be one line at the bottom of the page, cater for this.
              g2.setFont(footerFont);
              footerHeight = g2.getFontMetrics().getHeight() + g2.getFontMetrics().getDescent();
              g2.setFont(defaultFont);
              FontMetrics fontMetrics = g2.getFontMetrics();
              int fontHeight = fontMetrics.getHeight();
              int fontDescent = fontMetrics.getDescent();
              double pageHeight = pageFormat.getImageableHeight() - fontHeight;
              double pageWidth = pageFormat.getImageableWidth();
              double tableWidth = (double) tableView.getColumnModel().getTotalColumnWidth();
              // Shrink or expand the table to fit the page width
              double scale = pageWidth / (tableWidth+ (cellBuffer * tableView.getColumnCount()));
              // Calculate the width in pixels for each column
              double[] columnWidths = new double[tableView.getColumnCount()];
              for(int i = 0; i < tableView.getColumnCount(); i++)
                   columnWidths[i] = (double)tableView.getColumnModel().getColumn(i).getWidth() * scale;
              // Calculate the header height
              int maxHeight = 0;
              g2.setFont(headerFont);
              fontMetrics = g2.getFontMetrics();
              for (int j = 0; j < tableView.getColumnCount(); j++)
                   String value = tableView.getColumnName(j).toString();
                   int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                   if (numLines > maxHeight)
                        maxHeight = numLines;
              headerHeight = g2.getFontMetrics().getHeight() * maxHeight;
              g2.setFont(defaultFont);
              fontMetrics = g2.getFontMetrics();
              int pageNum = 0;
              int bottom_of_page = (int)(pageFormat.getImageableHeight() + pageFormat.getImageableY()) - footerHeight;
              int prev_row = 0;
              int next_row = (int)pageFormat.getImageableY() + fontHeight + headerHeight;
              int i = 0;
              ArrayList page = new ArrayList();
              page.add(new Integer(0));
              for (i = 0; i < tableView.getRowCount(); i++)
                   maxHeight = 0;
                   for (int j = 0; j < tableView.getColumnCount(); j++)
                        String value = tableView.getValueAt(i, j).toString();
                        int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                        if (numLines > maxHeight)
                             maxHeight = numLines;
                   prev_row = next_row;
                   next_row += (fontHeight * maxHeight);
                   // If we've reached the bottom of the page then set the current page's end row
                   if (next_row > bottom_of_page)
                        page.add(new Integer(i - 1));
                        pages.add(page);
                        page = new ArrayList();
                        page.add(new Integer(i));
                        pageNum++;
                        next_row = (int)pageFormat.getImageableY()
                                       + fontHeight
                                       + ((int)pageFormat.getHeight() * pageNum)
                                       + headerHeight;
                        bottom_of_page = (int)(pageFormat.getImageableHeight()
                                            + pageFormat.getImageableY())
                                            + ((int)pageFormat.getHeight() * pageNum)
                                            - footerHeight;
                        //Include the current row on the next page, because there is no space on this page
                        i--;
              page.add(new Integer(i - 1));
              pages.add(page);
          * Print the headers or a row from the table to the graphics context
          * Return the position of the row following this one
         public int printLine(Graphics2D g2,
                                       PageFormat pageFormat,
                                       FontMetrics fontMetrics,
                                       int rowNum,
                                       int next_row,
                                       double[] columnWidths)
                   throws PrinterException
              int lead = 0;
              int maxHeight = 0;
              for (int j = 0; j < tableView.getColumnCount(); j++)
                   String value = null;
                   int align = LEFT_ALIGN;
                   if (rowNum > -1)
                        Object obj = tableView.getValueAt(rowNum, j);
                        if (obj instanceof Number)
                             align = RIGHT_ALIGN;
                        value = obj.toString();
                   else
                        align = CENTER_ALIGN;
                        value = tableView.getColumnName(j);
                   int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                   if (numLines > maxHeight)
                        maxHeight = numLines;
                   if (fontMetrics.stringWidth(value) < columnWidths[j])
                        // Single line
                        int offset = 0;
                        // Work out the offset from the start of the column to display alignment correctly
                        switch (align)
                             case RIGHT_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)); break;
                             case CENTER_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)) / 2; break;
                             default: offset = 0; break;
                        g2.drawString(value,
                                       lead + (int)(pageFormat.getImageableX() + offset),
                                       next_row);
                   else
                        for(int a = 0; a < numLines; a++)
                             //Multi-Line
                             int x = 0;
                             int width = 0;
                             for(x = 0; x < value.length(); x++)
                                  width += fontMetrics.charWidth(value.charAt(x));
                                  if (width > columnWidths[j])
                                       break;
                             int offset = 0;
                             // Work out the offset from the start of the column to display alignment correctly
                             switch (align)
                                  case RIGHT_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)); break;
                                  case CENTER_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)) / 2; break;
                                  default: offset = 0; break;
                             g2.drawString(value.substring(0, x),
                                            lead + (int)(pageFormat.getImageableX() + offset),
                                            next_row + (fontMetrics.getHeight() * a));                    
                             value = value.substring(x);
                   lead += columnWidths[j] + cellBuffer;
              // Draw a solid line below the row
              g2.draw(new Line2D.Double(pageFormat.getImageableX(),
                             next_row + (fontMetrics.getHeight() * (maxHeight - 1)) + fontMetrics.getDescent(),
                             pageFormat.getImageableY() + pageFormat.getImageableWidth(),
                             next_row + (fontMetrics.getHeight() * (maxHeight - 1)) + fontMetrics.getDescent()));
              // Return the position of the row following this one
              return next_row + (fontMetrics.getHeight() * maxHeight);
         public static void main(String[] args)
              new Report();
    }

    Fixed some bugs and added a title. Just pass in a JTable and the class will do the rest.
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.print.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import javax.print.*;
    import javax.print.attribute.*;
    import javax.print.attribute.standard.*;
    import java.text.*;
    import java.math.*;
    public class PrintJTable implements Printable
         private final int LEFT_ALIGN = -1;
         private final int CENTER_ALIGN = 0;
         private final int RIGHT_ALIGN = 1;
         private JFrame m_parent;
         private String m_title;
         private JTable tableView;
         private String lastPrintDate;
         private Font defaultFont;
         private Font headerFont;
         private Font footerFont;
         private int headerHeight;
         private int footerHeight;
         private int cellBuffer = 5;
         private boolean first_pass;
         private ArrayList pages;
         public PrintJTable(JFrame parent, JTable table)
              m_parent = parent;
              tableView = table;
              doPrint();
         public PrintJTable(JFrame parent, String title, JTable table)
              m_parent = parent;
              m_title = title;
              tableView = table;
              doPrint();
          * Reset variables before printing
         private void prepareForPrint()
              pages = new ArrayList();
              first_pass = true;
          * Display a print dialog with some hardcoded defaults
          * The print fonts are also hardcoded
         public void doPrint()
              try
                   String jobName = "Java Report";
                   defaultFont = new Font("Arial", Font.PLAIN, 8);
                   footerFont = new Font("Arial", Font.PLAIN, 6);
                   headerFont = new Font("Arial", Font.BOLD, 8);
                   PrinterJob prnJob = PrinterJob.getPrinterJob();
                   prnJob.setPrintable(this);
                   PrintRequestAttributeSet prnSet = new HashPrintRequestAttributeSet();
                   prnSet.add(new Copies(1));
                   prnSet.add(new JobName(jobName, null));
                   prnSet.add(MediaSizeName.ISO_A4);
                   PageFormat pf = prnJob.defaultPage();
                   pf.setOrientation(java.awt.print.PageFormat.PORTRAIT);
                   prnJob.setJobName(jobName);
                   PrintService[] services = PrinterJob.lookupPrintServices();
                   if (services.length > 0)
                        if (prnJob.printDialog(prnSet))
                              * Get print date
                             String dateFormat = "dd/MM/yyyy HH:mm:ss";
                             DateFormat m_DateFormat = new SimpleDateFormat(dateFormat);
                             lastPrintDate = m_DateFormat.format(new Date()).toString();
                             prepareForPrint();
                             prnJob.print(prnSet);
                   else
                        JOptionPane.showMessageDialog(m_parent, "No Printer was found!!", "Printer Error", JOptionPane.ERROR_MESSAGE);
                        return;
              catch (PrinterException e)
                   e.printStackTrace();
         public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException
               * Check if this is the first time the print method is called for this print action.
               * It is not guaranteed that the print will be called with synchronous pageIndex'es,
               * so we need to calculate the number of pages and which rows appear on which pages.
               * Then the correct page will be printed regardless of which pageIndex is sent through.
              if (first_pass)
                   calcPages(g, pageFormat);
              first_pass = false;
              // Stop printing if the pageIndex is out of range
              if (pageIndex >= pages.size())
                   return NO_SUCH_PAGE;
              Graphics2D     g2 = (Graphics2D) g;
              g2.setColor(Color.black);
              // The footer will be one line at the bottom of the page, cater for this.
              g2.setFont(footerFont);
              footerHeight = g2.getFontMetrics().getHeight() + g2.getFontMetrics().getDescent();
              g2.setFont(defaultFont);
              FontMetrics fontMetrics = g2.getFontMetrics();
              int fontHeight = fontMetrics.getHeight();
              int fontDescent = fontMetrics.getDescent();
              double pageHeight = pageFormat.getImageableHeight() + pageFormat.getImageableY();
              double pageWidth = pageFormat.getImageableWidth();
              double tableWidth = (double) tableView.getColumnModel().getTotalColumnWidth();
              // Shrink or expand the table to fit the page width
              double scale = (pageWidth - (cellBuffer * tableView.getColumnCount())) / tableWidth;
              // Calculate the width in pixels for each column
              double[] columnWidths = new double[tableView.getColumnCount()];
              double test = 0;
              for(int i = 0; i < tableView.getColumnCount(); i++)
                   columnWidths[i] = (double)Math.floor(tableView.getColumnModel().getColumn(i).getWidth() * scale);
                   test += columnWidths;
              // Reset the view to the start of the page
              g2.translate(0, 0);
              // Draw a rectangle to see the printable area
              g2.draw3DRect((int)pageFormat.getImageableX(),
                        (int)pageFormat.getImageableY(),
                        (int)pageFormat.getImageableWidth(),
                        (int)pageFormat.getImageableHeight(),
                        false);
              // Calculate the header height
              g2.setFont(headerFont);
              fontMetrics = g2.getFontMetrics();
              // Print the headers and retreive the starting position for the data
              int next_row = (int)pageFormat.getImageableY() + fontMetrics.getHeight();
              if ((m_title != null) && (!m_title.equalsIgnoreCase("")))
                   g2.drawString(m_title,
                                       (int)(pageFormat.getImageableX()),
                                       next_row);
                   Color current_color = g2.getColor();
                   g2.setColor(Color.lightGray);
                   int y = next_row + fontMetrics.getDescent();
                   g2.draw(new Line2D.Double(pageFormat.getImageableX(),
                                  y,
                                  (pageFormat.getImageableY() + pageFormat.getImageableWidth()),
                                  y));
                   g2.setColor(current_color);
                   next_row += fontMetrics.getHeight();
              next_row = printLine(g2, pageFormat, fontMetrics, -1, next_row, columnWidths);
              g2.setFont(defaultFont);
              fontMetrics = g2.getFontMetrics();
              // Start printing the detail
              ArrayList page = (ArrayList)pages.get(pageIndex);
              int start = ((Integer)page.get(0)).intValue();
              int end = ((Integer)page.get(1)).intValue();
              for (int i = start; i <= end; i++)
                   next_row = printLine(g2, pageFormat, fontMetrics, i, next_row, columnWidths);
              // Print the footer
              g2.setFont(footerFont);
              String pageFooter = "Page " + (pageIndex + 1) + " - " + lastPrintDate;
              g2.drawString(pageFooter,
                             (int)pageFormat.getWidth() / 2 - (fontMetrics.stringWidth(pageFooter) / 2),
                             (int)(pageHeight - fontDescent));
              return PAGE_EXISTS;
         * We can't guarantee that the same amount of rows will be displayed on each page,
         * the row heights are dynamic and may wrap onto 2 or more lines.
         * Thus we need to calculate the height of each row and then test how may rows
         * fit on a specific page. eg. Page 1 contains rows 1 to 10, Page 2 contains rows 11 to 15 etc.
         public void calcPages(Graphics g, PageFormat pageFormat) throws PrinterException
              Graphics2D     g2 = (Graphics2D) g;
              g2.setColor(Color.black);
              // The footer will be one line at the bottom of the page, cater for this.
              g2.setFont(footerFont);
              footerHeight = g2.getFontMetrics().getHeight() + g2.getFontMetrics().getDescent();
              g2.setFont(defaultFont);
              FontMetrics fontMetrics = g2.getFontMetrics();
              int fontHeight = fontMetrics.getHeight();
              int fontDescent = fontMetrics.getDescent();
              double pageHeight = pageFormat.getImageableHeight() - fontHeight;
              double pageWidth = pageFormat.getImageableWidth();
              double tableWidth = (double) tableView.getColumnModel().getTotalColumnWidth();
              // Shrink or expand the table to fit the page width
              double scale = (pageWidth - (cellBuffer * tableView.getColumnCount())) / tableWidth;
              // Calculate the width in pixels for each column
              double[] columnWidths = new double[tableView.getColumnCount()];
              for(int i = 0; i < tableView.getColumnCount(); i++)
                   columnWidths[i] = (double)Math.floor(tableView.getColumnModel().getColumn(i).getWidth() * scale);
              // Calculate the header height
              int maxHeight = 0;
              g2.setFont(headerFont);
              fontMetrics = g2.getFontMetrics();
              headerHeight = 0;
              if ((m_title != null) && (!m_title.equalsIgnoreCase("")))
                   headerHeight = fontMetrics.getHeight();
              for (int j = 0; j < tableView.getColumnCount(); j++)
                   String value = tableView.getColumnName(j).toString();
                   int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                   if (numLines > maxHeight)
                        maxHeight = numLines;
              headerHeight += g2.getFontMetrics().getHeight() * maxHeight;
              g2.setFont(defaultFont);
              fontMetrics = g2.getFontMetrics();
              int pageNum = 0;
              int bottom_of_page = (int)(pageFormat.getImageableHeight() + pageFormat.getImageableY()) - footerHeight;
              int prev_row = 0;
              int next_row = (int)pageFormat.getImageableY() + fontHeight + headerHeight;
              int i = 0;
              ArrayList page = new ArrayList();
              page.add(new Integer(0));
              for (i = 0; i < tableView.getRowCount(); i++)
                   maxHeight = 0;
                   for (int j = 0; j < tableView.getColumnCount(); j++)
                        String value = formatObject(tableView.getValueAt(i, j));
                        int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                        if (numLines > maxHeight)
                             maxHeight = numLines;
                   prev_row = next_row;
                   next_row += (fontHeight * maxHeight);
                   // If we've reached the bottom of the page then set the current page's end row
                   if (next_row > bottom_of_page)
                        page.add(new Integer(i - 1));
                        pages.add(page);
                        page = new ArrayList();
                        page.add(new Integer(i));
                        pageNum++;
                        next_row = (int)pageFormat.getImageableY()
                                       + fontHeight
                                       + ((int)pageFormat.getHeight() * pageNum)
                                       + headerHeight;
                        bottom_of_page = (int)(pageFormat.getImageableHeight()
                                            + pageFormat.getImageableY())
                                            + ((int)pageFormat.getHeight() * pageNum)
                                            - footerHeight;
                        //Include the current row on the next page, because there is no space on this page
                        i--;
              page.add(new Integer(i - 1));
              pages.add(page);
         * Print the headers or a row from the table to the graphics context
         * Return the position of the row following this one
         public int printLine(Graphics2D g2,
                                       PageFormat pageFormat,
                                       FontMetrics fontMetrics,
                                       int rowNum,
                                       int next_row,
                                       double[] columnWidths)
                   throws PrinterException
              int lead = 0;
              int maxHeight = 0;
              for (int j = 0; j < tableView.getColumnCount(); j++)
                   String value = null;
                   int align = LEFT_ALIGN;
                   if (rowNum > -1)
                        Object obj = tableView.getValueAt(rowNum, j);
                        if (obj instanceof Number)
                             align = RIGHT_ALIGN;
                        value = formatObject(obj);
                   else
                        //align = CENTER_ALIGN;
                        value = tableView.getColumnName(j);
                   int numLines = (int)Math.ceil(fontMetrics.stringWidth(value) / columnWidths[j]);
                   if (numLines > maxHeight)
                        maxHeight = numLines;
                   if (fontMetrics.stringWidth(value) < columnWidths[j])
                        // Single line
                        int offset = 0;
                        // Work out the offset from the start of the column to display alignment correctly
                        switch (align)
                             case RIGHT_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)); break;
                             case CENTER_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value)) / 2; break;
                             default: offset = 0; break;
                        g2.drawString(value,
                                       lead + (int)(pageFormat.getImageableX() + offset),
                                       next_row);
                   else
                        for(int a = 0; a < numLines; a++)
                             //Multi-Line
                             int x = 0;
                             int width = 0;
                             for(x = 0; x < value.length(); x++)
                                  width += fontMetrics.charWidth(value.charAt(x));
                                  if (width > columnWidths[j])
                                       break;
                             int offset = 0;
                             // Work out the offset from the start of the column to display alignment correctly
                             switch (align)
                                  case RIGHT_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value.substring(0, x))); break;
                                  case CENTER_ALIGN: offset = (int)(columnWidths[j] - fontMetrics.stringWidth(value.substring(0, x))) / 2; break;
                                  default: offset = 0; break;
                             g2.drawString(value.substring(0, x),
                                            lead + (int)(pageFormat.getImageableX() + offset),
                                            next_row + (fontMetrics.getHeight() * a));                    
                             value = value.substring(x);
                   lead += columnWidths[j] + cellBuffer;
              // Draw a solid line below the row
              Color current_color = g2.getColor();
              g2.setColor(Color.lightGray);
              int y = next_row + (fontMetrics.getHeight() * (maxHeight - 1)) + fontMetrics.getDescent();
              g2.draw(new Line2D.Double(pageFormat.getImageableX(),
                             y,
                             (pageFormat.getImageableY() + pageFormat.getImageableWidth()),
                             y));
              g2.setColor(current_color);
              // Return the position of the row following this one
              return next_row + (fontMetrics.getHeight() * maxHeight);
         public String formatObject(Object obj)
              String value = (obj == null) ? "" : obj.toString();
              return value;

  • Printing Problem with changed page

    I have a 2 page PDF document that is created by another program. When I make a change on the second page and save using Acrobat 9 Pro, I am unable to print the page that the changes are on. The messages I get are " Document could not be ptinted" and then "No pages selected to print", even through I have selected the pages to print.

    The program creating the file is ReScan. I can print the file before I open with Acrobat. If I make any changes to the file, I am unable to print from Acrobat those pages which had changes made, even thou they show on the monitor fine. If I print to CutePDF Writer instead of directly to one of my three printers (I get the same result with all three different printers) then I can print the CutePDF Writer file.
    The fonts I am editing are installed on my system. Not sure what I am doing wrong to cause the program not to print. Don't want to have to use CutePDF every time I need to print. The program should be able to print an edited and saved document.
    Any help would be appreciated. Thanks.

  • Printing bug with logical page numbers

    I have a PDF file set up with logical page numbering. If I want to print page 7-10 and type this in the Pages field, Reader prints physical pages 7 through 10 from the PDF file instead of logical page 7-10. I tried it in Reader X and XI and the problem occurs in both. I am pretty sure it worked in early versions, but I don't know what version it stopped working on. Is this a known issue?
    Rick

    Could it be that this file contains duplicate page labels? Can you share the file?

  • How to print ALV with full page width used?

    Dear all,
    I have a report which print out with a small font if some of the fields have a long data content, while there a large white space on the right hand side.
    After a few test, I think the following cause the problem:
    1) The line column is less then the page column
    2) The setup leave write space unused in the right side
        (Tested by setup a format which have the same column count as the testing print out data)
    Would like to know are there any work around on this.
    Regards
    Bill
    Edited by: Bill Chie on Jun 13, 2011 7:23 PM

    Hi Wiz,
    Thanks for the information.
    But it look like that it only affect the column width but not the migrate, anyone have any idea about the migrate setting?
    And I would like to know if I can:
    - Setup a limit for the long text limit
    - It the text over the limit, go to 2nd line
    Regards
    Bill

  • Problen with error-page in web-app

    Hi!
    Anybody got working <error-page> in <web-app>?
    As I can see, oc4j (1.0.2.2.1) forgots about contentType and sets application/jsp mime type for error page...
    null

    Did you ever figure this out... it's still happening with Oracle9iAS (9.0.2.0.0) ... and the error page tries to download.
    If you had any luck with it, please let me know.

  • Printing issues with first page, only prints part of page

    I dont know if this is the right place to ask, but I figured i would give it a shot:
    I have a computer running parallels with an OSX supported (and windows supported) HP printer. When I am printing an email from Outlook Express, the first page gets cutoff, but all of the other pages are fine. the cutoff happens on the right hand side.
    I recently updated to SP3 and IE8, which I have heard controls the settings for Outlook.
    I have tried using a regular printer, and also tried CUTE PDF writer, which also "prints" the document in the same manner.
    Any thoughts would be appreciated or if you know where to go for support that would be great too
    Thanks!

    See if the solutions given in this article help: [http://kb.mozillazine.org/Problems_printing_web_pages#Does_not_print_entire_page_content Problems printing web pages]
    <BR><BR>For general information related to printing, see this article: [[Printing a web page]].

  • Printing problem with muliple page 2D graphics.........URGENT

    /*hi
    I want to print the drawings that i create in my painting application.
    Following is the extract from my drawing application, which takes care of the printing part. The problem i am facing is that, i am able to print only one page, the other parts of my drawing are clipped (both from the horizontal as well as vertical direction)
    However i did found some help on printing multiple page TEXT documents, from some literature, but nothing was mentioned about printing drawing that may extend to multiple pages.
    Since printing forms a very important part of any painting application, the whole of my project now relies on the success of the printing code. Its really urgent for me to get out of this problem, any kind of help from anyone would be a great contribution in completing my project */
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.print.*;
    public class Print {
    public static void main(String[] args) {
    PrintFrame f = new PrintFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.show();
    class PrintFrame extends JFrame implements ActionListener{
    DrawingPanel drawingPanel = new DrawingPanel();
    public PrintFrame() {
    setTitle("Test Printing");
    setBounds(100,100,500,400);
    getContentPane().add(new JScrollPane(drawingPanel), BorderLayout.CENTER);
    JButton printButton = new JButton("Print");
    getContentPane().add(printButton,BorderLayout.SOUTH);
    printButton.addActionListener(this);
    public void actionPerformed(ActionEvent event) {
    PrintUtilities.printComponent(drawingPanel);
    class DrawingPanel extends JPanel {
    private int fontSize = 90;
    private String message = "Java 2D";
    private int messageWidth;
    Dimension pref = new Dimension(1500, 1500);//will define the max scrollable area
    public Dimension getPreferredSize() {
    return pref;
    public DrawingPanel() {
    setBackground(Color.white);
    Font font = new Font("Serif", Font.PLAIN, fontSize);
    setFont(font);
    FontMetrics metrics = getFontMetrics(font);
    messageWidth = metrics.stringWidth(message);
    int width = messageWidth*5/3;
    int height = fontSize*3;
    setPreferredSize(new Dimension(width, height));
    public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D)g;
    int x = messageWidth/10;
    int y = fontSize*5/2;
    g2d.translate(x, y);
    g2d.setPaint(Color.lightGray);
    AffineTransform origTransform = g2d.getTransform();
    g2d.shear(-0.95, 0);
    g2d.scale(1, 3);
    g2d.drawString(message, 0, 0);
    g2d.setTransform(origTransform);
    g2d.setPaint(Color.black);
    g2d.drawString(message, 0, 0);
    g2d.drawLine(5,5,1490,500);//this line goes outside my paper width, & does not get printed
    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();
    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 g2 = (Graphics2D)g;
    g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    disableDoubleBuffering(componentToBePrinted);
    componentToBePrinted.paint(g2);
    enableDoubleBuffering(componentToBePrinted);
    return(PAGE_EXISTS);
    /* disables double buffering globally. */
    public static void disableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(false);
    /* Re-enables double buffering globally. */
    public static void enableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(true);
    }

    Um I dont know if im doing something daft but I tried this like you said
    PrinterJob printJob = PrinterJob.getPrinterJob();
    printJob.setPrintable(this);
    if(printJob.printDialog()){
    try {
              PageFormat pageFormat = printJob.defaultPage();
              if (pageFormat.getOrientation() == PageFormat.PORTRAIT) {
              landscape = 0;} else {
                   landscape = 1;}
              System.out.println("THE ORIENTATION IS "+ landscape);
              printJob.print(); }
    catch (Exception PrinterExeption) { PrinterExeption.printStackTrace();}
    and it doesnt seem to work as I tried it both as landscape and portrait in the print dialog but landscape is always 0.
    cheers
    pmiggy

  • Page size printing problems with custom page size I created

    I have created a custom page size (very small) for printing an advertise I had to print, and now after that operation all the pages I ask to print to any printer are automatically printed in that setup, and sometimes even if I change to A4 manually, the page changes but the borders of the page still remain the old one (result i can not print). How can I cancel the custom page size I created, so that my printers restart to print automatically in A4?
    thank you very much

    I have created a custom page size (very small) for printing an advertise I had to print, and now after that operation all the pages I ask to print to any printer are automatically printed in that setup, and sometimes even if I change to A4 manually, the page changes but the borders of the page still remain the old one (result i can not print). How can I cancel the custom page size I created, so that my printers restart to print automatically in A4?
    thank you very much

  • Payment check Sapscript prints all in one page

    Hi;
    we are facing a problem, days ago we printed payment checks with no problem, we prepare N amount of payment checks and send them to print and work ok.
    Now, if we do the same all payment checks are printed in the first check.
    We already did word documents with payment check size 8.5" x 8.5" page, and prints ok with N pages.
    Any help.
    David Fúnez
    Tegucigalpa, Honduras

    Hi,
    Check whether you are using the same output device for printing or whether some changes have been done in the output device or device type.
    Before printing, check the print preview of the payment cheque, whether it is correctly alligned or not.

  • Using error pages in web.xml

              Having a few problems with error pages and web.xml with browsers caching the error
              pages and strange errors coming out of weblogic.servlet.intenal.WebAppServletContext
              I'm trying to set a web app up so that all http errors and all exceptions are
              routed thruogh predefined resources. For now, I'm simply send 400 errors to 400.html
              and the ServletException, IOException and RuntimeException to respective html
              pages.
              What I'm finding is that the error codes work fine but the exceptions are only
              be routed to the correct error page for the first call to the servlet after server
              restart.
              So for example, I have my servlet throwing a ServletException as a test case.
              The weblogic server log shows that ServletException is thrown, and the correct
              error page for ServletExceptions is shown.
              If I change the Servlet code to throw IOException in place of SevletException,
              the weblogic.log shows that IOExceptyion is being thrown (so the servlet has deployed
              successfully), however the Servletxception error page is shown on the browser.
              I'm using IE6 and I've changed the setting such that a new page is requested every
              time using the tools-internet options-temp internet files-settings option to "check
              for new versions of stored pages: Every visit to the page".
              Despite this, the servlet exception error page still appears.
              If you clear the cache from the temp intenet files->delete files IE option, the
              correct errror page will be shown so it appears that the browser cache is being
              used after all.
              everytime I delete the temp intenet files I get the correct error page on the
              first request after but then not after that.
              I have implemented the service method for this test to throw the exceptions -
              does this make a differecne?
              As a test, I have moved the imlpementation to the doGet method instead bu I now
              get a strange eror from weblogic comlpaining about an arrayOutOfBoundsException
              because eror codes in the web.xml are not supported! - see error above.
              Any help is appreciated
              

    Have you tried setting pragama no cache?
              <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
              cheersmbg"Aaton" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Having a few problems with error pages and web.xml with browsers caching
              the error
              > pages and strange errors coming out of
              weblogic.servlet.intenal.WebAppServletContext
              >
              > I'm trying to set a web app up so that all http errors and all exceptions
              are
              > routed thruogh predefined resources. For now, I'm simply send 400 errors
              to 400.html
              > and the ServletException, IOException and RuntimeException to respective
              html
              > pages.
              >
              > What I'm finding is that the error codes work fine but the exceptions are
              only
              > be routed to the correct error page for the first call to the servlet
              after server
              > restart.
              >
              > So for example, I have my servlet throwing a ServletException as a test
              case.
              > The weblogic server log shows that ServletException is thrown, and the
              correct
              > error page for ServletExceptions is shown.
              >
              > If I change the Servlet code to throw IOException in place of
              SevletException,
              > the weblogic.log shows that IOExceptyion is being thrown (so the servlet
              has deployed
              > successfully), however the Servletxception error page is shown on the
              browser.
              >
              > I'm using IE6 and I've changed the setting such that a new page is
              requested every
              > time using the tools-internet options-temp internet files-settings option
              to "check
              > for new versions of stored pages: Every visit to the page".
              >
              > Despite this, the servlet exception error page still appears.
              >
              > If you clear the cache from the temp intenet files->delete files IE
              option, the
              > correct errror page will be shown so it appears that the browser cache is
              being
              > used after all.
              >
              > everytime I delete the temp intenet files I get the correct error page on
              the
              > first request after but then not after that.
              >
              > I have implemented the service method for this test to throw the
              exceptions -
              > does this make a differecne?
              >
              > As a test, I have moved the imlpementation to the doGet method instead bu
              I now
              > get a strange eror from weblogic comlpaining about an
              arrayOutOfBoundsException
              > because eror codes in the web.xml are not supported! - see error above.
              >
              > Any help is appreciated
              

  • IWeb page printed from iWeb site comes out BLACK on some browsers

    I made and run a website for a local art group. iWeb works well for this purpose. I publish the site to our domain. The main site is for the public and a second site, password protected and reached through the main site, is for members.
    I've put the entry form for our biggest annual exhibition on the website, intending that members can print it from there (most have hard copies as well). Printing works perfectly from Safari. But many members have PCs (grrr) and use things like Firefox and IE.
    Firefox prints the iWeb pages totally BLACK. IE prints okay on some computers and not on others. A clue is that, if you look fast as you open an iWeb page in IE, you see all the layout components in light blue; it immediately disappears. But that is the part that prints out black.
    What on earth is causing this and HOW can it be prevented?? I have used NO background color on my pages.
    Thanx,
    Margot
    17" iMac   Mac OS X (10.4.9)  

    That ain't right! What you need to do is use web-safe fonts...
    http://www.iwebformusicians.com/iWeb/Fonts-Colors.html
    ... and a few other tricks to cope with IE...
    http://www.iwebformusicians.com/iWeb/iWeb-Internet-Explorer.html
    http://www.iwebformusicians.com/iWeb/Browser-Compatibility.html

  • What problems, if any, has anyone had by changing to iCloud with their iWeb pages?

    What problems, if any, has anyone had by changing to iCloud with their iWeb pages?

    The iWeb Application will still run after Mobile Me will be turned off; you can export your web pages to a folder on your hard disk and use ftp to upload the pages to another hosting service.
    The generated webpages however will refer to icons located on the mobile me server. To make the forward/backward arrows in slide shows work again you will have to patch the iWeb Application. See Old Toad's tutorial on how to do this:
    Modify the iWeb Application: http://oldtoadstutorials.net/No.26.html
    Also there is a nice tutorial on how to transit from Mobile Me to another service; see Roger Wilmut's page here:
    Migrating from Mobile Me:
    http://www.wilmut.webspace.virginmedia.com/notes/migrate/frommobileme3.html
    Regards
    Léonie

  • Is it possible to upload large files through FTP to server with iWeb?

    Is it possible to upload large files through FTP to server with iWeb like for example with Cyberduck?
    I don't need to publish website with files, I just need to upload files on server. Can it be done somehow with iWeb?

    Here's some info about FTP...
    http://www.iwebformusicians.com/Search-Engine-Optimization/Upload.html
    Make sure you are allowed to store files on your server. Most hosting services don't allow anything to be stored that can't be accessed via the internet. Check the fine print!

Maybe you are looking for

  • How can I install pc games on a mac

    I want to play Counter strike, gunbound, age of empires or battlefield 3, How can I play those games?

  • Adobe Bridge avchd metadata

    will new update for Adobe Bridge allow metadata?

  • White 17in C2D External Display Issues

    My iMac late 2006 has a cracked screen so I have it plugged in to an external monitor. I opened it up and disconnected the inverter, webcam, and the display cable. This makes it display to my external monitor but it's having issues, the boot screen s

  • RE1000 - Questions on Setup

    How do you make it longer range ? Lol know its like 4 hours later but i remembered, is there anyway to make range longer on these wifi routers? It's right by my garage, by my house in the back, on my phone i only have a 1 bar . And no i didnt read th

  • 4 Quadrant Chart, possible?

    Dear experts, Anyone know if it is possible to define in de BEX web analyzer a 4 quadrant charts in which the x-axis and y-axis meet at the origin at the center of the plot area ? I see the in de Bex web analyzer the charttype quadrant, but not the o