No longer able to print 5x7 on half page..and/ File shrink?

Hi,
I'd like to print a 5x7 sized photo/file on letter-sized (8.5x11) photo paper to use only half of the sheet. 
I used to do this all the time in my old PSE2 program (I've only recently updated from 2 to PSE9).  From that older print dialog box, in the little preview pane I was able to move the photo up/down/side-to-side (wherever I wished) and in the final print-out it would be prescisely where I placed it , saving space on the paper for a second print.  Apparently this is no longer possible in the newer versions...?  In PSE9 my print keeps coming out half printed, no matter what I ticked (landscape/port) or how I placed it.
Question: Is this no longer possible to do in the newer versions?
I tried working around this by creating a new file in the PSE9 editor and moving the orig 5x7 file into that one--via select-all>edit>copy and then pasting the 5x7 into the newly created 8.5x11 file...however the 5x7 did not retain its dimensions when placed into the 8.5x11 space.  Maybe I could "resize" the layer? (if that possible?)
Question: What is causing the orig 5x7 to shrink to 4x5.6 when copied to the new file? 
Thanks much for any enlighting
~Suzanne
HP Pavilion dv7/ Notebook PC/ RAM-6.00 GB/ 174 GB free space
Windows 7/ PSE-9/camera-Sony Cybershot-HX1

Click on Extensions, Appearance or Plugins in the left margin of the Add-ons Manager display/tab.
*It is trying to load the "Get Add-ons" information from the web server
*There is possibly a minor glitch in loading the "Get Add-ons" option, but it is so minor that the developers have discussed and decided that no update for that minor item will be done, at this time
*If you want new add-ons, go to the following link and use the search box on the page: https://addons.mozilla.org/en-US/firefox/
'''If this reply solves your problem, please click "Solved It" next to this reply when <u>signed-in</u> to the forum.'''

Similar Messages

  • I am no longer able to print a document from within a specific website

    I am no longer able to print my transactions statements from my financial institution. Once on their website, I would click on the statement and it would open up the document as a PDF file. I can't do that any longer

    What do you have set for handling PDF files in Firefox? <br />
    https://support.mozilla.org/en-US/kb/set-how-firefox-handles-different-file-types
    See if these support articles help you. <br />
    https://support.mozilla.org/en-US/kb/use-adobe-reader-plugin-view-or-download-pdf-files
    https://support.mozilla.org/en-US/kb/disable-built-pdf-viewer-and-use-another-viewer

  • I am no longer able to create chapters in my Apple TV files

    I am no longer able to create chapters in my Apple TV files.  When I first started editing on the Mac (November 2009) I had a brand new iMac and Snow Leopard.  With Snow Leopard came a 'special' version of QuickTime (QT X?) which were told not to update to 'Pro' (QT 7 Pro).  My process was to use FCE with chapter markers to export my home videos to a QuickTime file.  FCE created a beautiful .mov file with embedded visual chapters as I had marked them.  It imported fine into iDVD.  The next step was to 'Save As' within QuickTime and choose to save with the Apple TV profile.  The .mov file would be converted and everything, including Chapters, would go with it.  From Apple TV, I could peruse my home movies and dig deeper via chapters.  Amazing and totally cool.
    About 9 months ago, maybe a year, the chapters were no longer saving with the Apple TV format.  This meant that each hour long home movie could not be accessed via chapters.
    Was this functionality removed from QuickTime X?  Is there any way to get it back?  I am almost a year behind in my editing since I can no longer easily get the chapter markers in.
    Thanks,
    D.

    im glad that somebody is atleast trying. perhaps i need to be more clear.
    i will step by step describe the issue in detail.
    1) i open an email that contains an attachment .dxf or .pdf
    2) i click on the attachment shown in the email and aprompt comes up asking if i want to open or save the attachment.
    3) i select save. (by default it saves to a downloads folder. but i have also chosen to use other folders (when i did that it wouldnt save them)
    4) i highlight the downloads arrow on the right top side of my browser and click it
    5) it pulls down a list of the files that i USED to be able to click and drag onto my destop, or anyplace i chose
    6) used to be when i clicked and held the left mouse button down on top of a file of my choosing it would highlight and as i began to drag, a ghost image would appear of the file i was dragging. showing a (/) symbol next to it showing i couldnt drop the file within the browser and a + simbol showing that i could drop the file when the file was hovering over a place where i could drop the file such as my desktop or other folder. now, when i click and hold on the file.... I DONT get anything. when i drag. nothing follows. while i am "dragging" in the area that is my browser, i get the pointy finger icon. as soon as i enter an area where i could have dropped the file as before, i get my standard cursor arrow.
    its really as if the drag and drop feature just dosent work IN FIREFOX.
    i can drag and drop files all day long everyplace else.

  • My ipod Touch 4S is no longer able to update applications (They just sit and wait forever).  How do I fix this?

    My iPod Touch 4S is no longer able to update applications (They just sit and wait forever).  How do I fix this?

    restore or reset your ipod. there is a problem with ipods atm so the best you can do is wait if neither restoring or reseting works.

  • Officejet j6415 winows 7prints half pages and pages of gibberish since reinstalled printer software

    When reinstalling the printer software, there is always a fatal error with no ID number. I have tried all the troubleshoot options for the installation but they do not work. My printer can still print fully (rarely) but mostly prints half pages and pages of gibberish. There are no error messages on the printer. Help!

    Hi JayG58,
    I am going to send you a private message, please check the little envelope on the top right hand corner of the forums page to check your Forums inbox.
    Please click the Thumbs up icon below to thank me for responding.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Please click “Accept as Solution” if you feel my post solved your issue, it will help others find the solution.
    Sunshyn2005 - I work on behalf of HP

  • I print 2 pages to pdf and file size is 600k, I print 1 additonal page and file size goes to 6M, what would cause this (graphics are same on all pages)

    I print 2 pages to pdf and file size is 600k, I print 1 additonal page and file size goes to 6M, what would cause this (graphics are same on all pages).
    I know the colour graphic shading in the document that causes the issue of larger file size, but it doesn't make sense that printing 1 additional page with same information as first 2 pages would cause this.

    I print 2 pages to pdf and file size is 600k, I print 1 additonal page and file size goes to 6M, what would cause this (graphics are same on all pages).
    I know the colour graphic shading in the document that causes the issue of larger file size, but it doesn't make sense that printing 1 additional page with same information as first 2 pages would cause this.

  • No longer able to print from wireless MacBook Pro to wired C7280

    I originally piggy-backed this onto an existing thread thinking that it was the same issue.  It looks like it was something else now, so I figured I probably ought to spin this off onto its own thread.
    Details:
    Printer:  Photosmart C7280 All-in-One, connected to network via Ethernet, IP address 192.168.1.5 (confirmed with Network Menu > View Network Settings > Display Wired Summary)
    Router:  Verizon/Actiontec MI424-WR (Verizon FiOS) with
    * Ethernet ports
    * 802.11b and 11g with WPA encryption
    Desktop:  iMac with Mac OS 10.5.8, Ethernet connection.  I originally installed the HP software from the CD when we got the 7280 a few years ago, but we've probably upgraded it since then.
    My Laptop:  MacBook Pro with Mac OS 10.5.8, wireless connection.  I think the HP software was originally downloaded from hp.com (as opposed to the original CD).
    Wife's Laptop:  MacBook with Mac OS 10.6.3, wireless connection.  HP software downloaded from hp.com.
    We've been able to print from the laptops to the 7280 until several days ago.  After that, anything sent from the laptops stayed on the printer queue without any reaction from the printer, even after the usual tricks (cycling power on printers, holding and unholding jobs, pausing and unpausing printers, etc.) 
    Our laptops seem to lose the wireless connection a bit more frequently than normal, and at first I thought that was the problem.  Lately, however, I can't get anything to print even when the wireless connection stays solid.  I can print from the iMac, though.
    As noted above, my wife's MacBook has 10.6.3, so I'll try the instructions on other threads for uninstalling the HP software and using the built-in 10.6 drivers.  If I can pry the MacBook away from my wife long enough :-)
    Meanwhile, I've been trying to troubleshoot my own MacBook Pro.  I can ping 192.168.1.5, and I can pull up the printer's web page by entering "192.168.1.5" in my web browser.
    So I followed the instructions here:
    http://h10025.www1.hp.com/ewfrf/wc/document?docnam e=c01893662&tmp_task=solveCategory&lc=en&dlc=en&c...
    (title:  Mac OS X:  Print Jobs are Stuck in the Print Queue and Will Not Print on a Networked Product)
    I followed Solution 1 (Delete and readd printer) until I got to steps 7 and 8.  The printer wasn't automatically added to the Printers list, so I clicked the Add button, but wasn't able to select my printer from the list.  Some of the information in Solution 2 seemed to hint that I had a connectivity problem, and suggested that I look for network connectivity solutions.  Unfortunately, all of the network connectivity FAQs referred to Windows-specific utilities, so I decided to uninstall the HP software (using HP Uninstaller).  I downloaded HP_Installer_PSC7200_v9.7.1.dmg from hp.com and ran it, but here's what happened:
    At the Select Device step, no devices appeared even though the printer was powered up and on the network.  (As noted earlier, I can ping it.)  I checked "My device is not listed" and clicked Continue; when "Photosmart C7200 series" appeared, I selected it.
    At the "Select the Device Connection" subset, I selected "Network." (The "device" in this question is the printer--right?)
    I went through the Install step.
    No device was listed at the Setup step.  I handled this the same way as the Select Device step ("My device is not listed", Continue, click "Photosmart C7200 series", Continue, select "Network", Continue.
    This time, I got this dialog:  "If your device is not listed, it is not supported by this installer.  Please visit www.hp.com/support to download an installer, if one is available" even though this was the correct installer for C7200 and Mac 10.5.
    Am I overlooking something?  What should I try next?
    This question was solved.
    View Solution.

    It appears that the printer is OK and is on the network.  Eventually you may want to set a static IP address for it, but let's get things working first.
    The first thing I would try would be to reset the printing system on all the problem Macs:
    - Sys Prefs, Print & Fax
    - Right (control) click the print queue area and select Reset Printing System.
    - Select the plus sign to re-add it. Look for the printer, select it and wait until the "Add" button becomes available. Click it.
    If this does not do it there may be something going on with the router.  I have a few ideas if this is required.  Let me know.
    Say thanks by clicking "Kudos" "thumbs up" in the post that helped you.
    I am employed by HP

  • Laptop (Running Windows 8.1) no longer able to print and now see message Active Directory Domain Services is not available

    Have a very recent Lenovo Ideapad Laptop running Windows 8.1. Connected via USB port to HP LaserJet Pro CM1415 frw Color MFP Printer. Was able to print fine nearly 2 weeks ago, but something recently happened - either a new windows or office 2013 update
    or perhaps I blew away a certain file by mistake. I can see the printer installed but cannot print to it from anything (Word, Notepad, IE, Firefox etc.). The one thing to note is that usually when I plug or unplug a USB related device, Windows 8.1 recognizes
    this and makes a certain chime noise, but with the printer USB cable it never makes that noise - making me think that it never fully recognizes the printer. Also when I select the printer (from within the control panel) and right click for properties (via
    admin rights) It never lets me fully connect to it.
    I have tried all the usual remedies - remove, install all drivers, reinstall printer, Windows update, start/stop print spooler and all other printer related services,  etc. Its really annoying because this printer was working fine nearly 2
    weeks ago. Looking for any advice now. Thanks.
    -Chris

    Hi Chris,
    à
    I have tried all the usual remedies - remove, install all drivers, reinstall printer, Windows update, start/stop print spooler and all other printer related services, etc.
    I noticed that you had reinstalled the printer. Just a confirmation, when un-install this printer, please check
    if this printer still exist in registry. For more details, please refer to following KB.
    Registry entries for printing
    If printer entry still exist in registry, please delete that printer entry and re-install this printer again,
    then check if this issue still exists. (Please backup registry entries before operating registry. It will help us to avoid unexpected issue.)
    àand now see
    message Active Directory Domain Services is not available
    By the way, would you please let me know where/when get this
    Active Directory Domain Services is not available error message? Or provide a screenshot of it?
    (Please hide all protected or private information) Please check if all services are running correctly on the computer. Meanwhile, please refer to following article and check if can help you.
    Printer
    Problem: Active Directory Domain Services is currently unavailable – Why does windows say no printers are installed?
    Please Note: Since the web site is not hosted by Microsoft, the link may change without notice. Microsoft
    does not guarantee the accuracy of this information.
    If any update, please feel free to let me know.
    Hope this helps.
    Best regards,
    Justin Gu

  • MacBook no longer able to print wirelessly?

    Hello
    I have an issue that I can't seem to come up with a reason for or a resolution. I apologize in advance for the length of this posting.
    We have a Dell Laptop that is connected wirelessly to a Brother MFC-420CN printer. We have a Linksys Router. Previously, we'd also had been connected wirelessly to the same printer and our MacBook. The Mac was connected to the printer through an Internet/IPP connection, using the IP address. We had no trouble printing from the Mac.
    On Christmas, the Mac stopped printing wirelessly to the printer. We got the message "Failed to connect to device." We tried re-installing, etc, and finally went out and bought a USB/printer cable and connected hardwire Mac to printer, and after that, it again printed wirelessly.
    Problem solved, right?
    Now, its happened again, but we cannot get the Mac and the printer to talk to each other. Each time we try, we get the same message "Failed to connect to device" but nothing has changed! This has happened literally overnight, one night it prints wirelessly, the next day it doesn't. Even connecting hardwire between the Mac & printer does not help this time. We've tried everything we can think of.
    No issues w/the PC and printer at all.
    Additional info: The PC and the Mac are NOT networked w/each other. Also, when we enter in the original IP address under the Mac printer installation, it immediately identifies the printer as the MFC-420CN, however, this is NOT the same IP address as on the Linksys router, but if we put in the IP address on the router, it no longer recognizes the printer.Printer sharing is enabled on the PC, although it wasn't previously. We can print hardwire from the Mac. Finally, the router and the Mac work fine wirelessly for the internet.
    We're literally at a loss. It worked fine, then overnight, it doesn't.
    Any help or suggestions would be appreciated! I am a new Mac user so please bear with me!
    Mac Book Pro   Mac OS X (10.4.8)  

    Hello
    We weren't using that method to add the printer, however, we did try using both the original IP address as well as the one we see when we open the router properties, and still no luck.
    Does the printer have its on IP address? Separate from the router IP address? If so, how would we find it?
    Thanks
    Mac Book Pro   Mac OS X (10.4.8)  
    Message was edited by: Pdlhed

  • Windows Service no longer able to print PDF files using Adobe Reader 11.0.07.79

    We have a Windows Service that watches a folder for PDF files to be deposited.  Once awakened, it executes the Adobe Reader in command line mode to print the PDF files to secure check printers. The Windows Service was working fine with 11.0.06.70 but no longer works with 11.0.07.79.
    There are no event viewer errors or errors returned to our Process.Start() call.  The Windows Service is running under the identify of an administrator account and has explicit full access to the printer.  We have also tried the local computer's Administrator account as well as the default Local Service, but none work.
    Using ProcMon to examine the failure, it showed Adobe Reader making many successful registry and file accesses.  Adobe Reader then creates a new process, another instance of itself to read in the PDF file and print to the printer.  However, ProcMon only shows Adobe Reader accessing AcroRd32.exe, syswow.dll (sp) and ntdll.dll and then the thread and process immediately exits with an exit code of 0 (no file or registry accesses).  So, something is causing the instantiated process to fail immediately.
    After more research and trying many things, we disabled "Enable Protected Mode at Startup".  This enabled things to work again.
    We are concerned that disabling this feature might expose security concerns for our customers.
    We are suspecting that some security concerns were tightened with 11.0.07.79 that has inadvertently caused printing from Windows Services to falsely be identified as security violations.  Can you please investigate and provide a resolution?
    Thank you.
    Craig Keating
    Alliance Enterprises, Inc.
    [email protected]

    Hi,
    Can you please give the following details:
    1) Command (given in command line)used to print PDF files?
    2) Is the issue reproducible with other printers as well?
    3) Is directly printing the PDF from that folder using command line i.e without using windows service works fine or not?
    Thanks,
    Shakti K

  • No longer able to print wirelessly

    Hi
    I have and iPhone 4S and an HP Photosmart 7510 printer and a Three Mifi. I used to be able to print from my laptop and iPhone to my printer with no problem - until I updated my printer. Now I'm unable to print from either wirelessly.
    My iPhone detects the printer but when it goes to print it says the printer is offline - but it isn't.
    I've set the printer to print using HPs email address and this works but I've tried using the HP app and it says it can't find the printer.
    I'm confused.

    jlcnyc0 wrote:
    I have a Canon Pixma MP150 printer connected by usb to my iMac. I have a macbook networked (wireless) with the iMac (D-link router). Months ago - I USED to be able to print wirelessly from the macbook (maybe pre 10.5.x??? - not sure)but now when i try to print, I get the never ending message of "looking for printer". What happened??? Leopard update issue?
    ....and how can resume printing wirelessly.
    Is your iMac's "Sharing" System Preference still set for printer sharing?

  • No longer able to print via wireless network

    I have an HP OfficeJet 6500A Plus E710N and have had it connected to my wifi network and working properly for some time now.  Recently, print jobs would queue up and nothing would print b/c it said the printer could not be found on the network.
    I deleted the printer from my print preferences and tried to reconnect, but I can't see the printer on the network.
    I have powered off the printer, reset the wifi conncetion (printer still sees router), and properly entered the WEP key. 
    Does anyone have any suggestions?  

    I inadvertently changed my networks name from "esteroal" to HOME-5022.  Both were listed thru EWS.  Now I can no longer access my printer network or EWS since I have no IP address for the new network (HOME-5022).  HELP

  • Print Report on half page

    hello,
    I am using report builder 6i. I want print on half page but the printer LQ-300+ uses full page. i want to print two receipts from one pages.
    Thanks
    iftikhar

    Make sure your frames are set up to handle that kind of printing. Check to make sure that 2 repeating frames will fit into one page. There are properties on the repeating frames and regular frames that can affect this, like "Page Protect", "Page Break Before/After","Maximum Records per Page" or "Space Between Frames" (these are just some). You also might want to check the height and width of you section. You can increase the height until you see 2 show up, that tells you your repeating frame is too big for 2 records for your original height.

  • Not able to  print chart from second page onwards..

    I'm trying to print chart in xml publisher report. Requirement is to print chart for each employee one next page. I'm able to print chart using preview, but not in concurrent program output. Rest of the details are printed without any issue.
    Can some please help on how to print chart repeatedly in single report.
    Data may look like
    <G_EMP_NO>
          <Data>xyz</Data>
    </G_EMP_NO>
    <G_EMP_NO>
          <Data>abd</Data>
    </G_EMP_NO>
    ....Thanks in advance!!
    Edited by: user641008 on Aug 1, 2011 12:21 AM

    I'm not near my Epson right now, so I don't have the exact details.  But I suggest you try this:
    Use Epson iPrint.  Click on the WorkForce 520 printer, then choose "Advanced Options" down near the bottom.
    As I recall, one of the options has to do with setting up the printer to work with iPrint (or maybe verifying it's been set up correctly).
    See if that helps.
    By the way, there is also a "Firmware Update" there in those Advanced Options.  You should definitely do that as well.

  • 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;

Maybe you are looking for

  • Is there a way to update all snapshots in a tree?

    Hi all, I'm running Server 2012 R2 and have a VM with about a dozen snapshots under the main "clean" snapshot.  The problem I'm running into is that when I do a monthly check of updates, I have to update each individual snapshot with the new updates.

  • What is the best way to image a Mac HD?

    I have a school with about 60 new iMacs. I would like to create one master image and push out to all the other computers using a external network hard drive. I am installing iWork and BootCamp with XP and a few other programs, all with valid licences

  • Help getting report to execute from URL

    Hello, I'm able to generate a URL to access a report with parameters specified; however, the user still has to click 'Apply' to run the report. Is there a way to format the URL such that the report is executed? Thanks! Jess http://reports.myco.com/_v

  • I have adobe reader 9.3 am having issues please help

    when trying to print get X an internal error occured then pop up saying internet explorer has stopped working tried to uninstall adobe reader could not do that...times out and stops installing can anyone give advice

  • Print the logo for all pages

    Hi How to print the logo for all pages in xml report please provide the tags also