Problem: when the user prints the JTextArea, the text at the right-hand side of the "paper" is cut off, despite the fact that it is visible on the screen. Question: How can this be solved? I've tried two ways of printing the text area, and neither has worked as I'd hoped. Unfortunately, I do not have a printer for my laptop so I can't do tests easily. Does anyone know of a better way to do the printing?

public class MatchListing extends JPanel implements Printable, ActionListener{

	private JFrame frame;
	private JButton print;
	private JTextArea textArea;
	public void actionPerformed(ActionEvent e){
		//alternatively to the below:
		} catch(Exception excp){}

	public MatchListing(){
                // ...

		textArea = new JTextArea(10, 25);
		textArea.setMargin(new Insets(0,100,0,0));
		textArea.setFont(new Font("Times New Roman", Font.PLAIN, 18));
		JScrollPane jsp = new JScrollPane(textArea);
                 // put text into the textArea here & add it to the frame
                 //(code removed for readability)

        add(jsp, c);
	public int print(Graphics g, PageFormat pf, int page) throws PrinterException{
		if (page > 0) { /* We have only one page, and 'page' is zero-based */
			return NO_SUCH_PAGE;

		/* User (0,0) is typically outside the imageable area, so we must
		 * translate by the X and Y values in the PageFormat to avoid clipping
		Graphics2D g2d = (Graphics2D)g;
		g2d.translate(pf.getImageableX(), pf.getImageableY());

		/* Now print the window and its visible contents */

		/* tell the caller that this page is part of the printed document */
		return PAGE_EXISTS;

8 Years
Discussion Span
Last Post by Krefie
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.