File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Swing / AWT / SWT and the fly likes Page size when printing html from JTextPane Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Page size when printing html from JTextPane" Watch "Page size when printing html from JTextPane" New topic

Page size when printing html from JTextPane

Chris Behr

Joined: Jun 12, 2001
Posts: 17
I have a JTextPane that reads a .htm file and displays it. If I change the font size it changes the appearance on the JTextPane but when I try to print the data looks the same. I have a large html table and I can only get 20 columns on one page. I would like to shrink the table down so I can get more on a page. Here is the code I am using to print the JTextPane:
private void startPrint() {
PrinterJob prnJob = PrinterJob.getPrinterJob();
catch (PrinterException e) {
System.err.println("Printing error: "+e.toString());
public int print(Graphics pg, PageFormat pageFormat,
int pageIndex) throws PrinterException {
Dimension d = prtPane.getSize();
double panelWidth = d.width;
double panelHeight = d.height;
double pageHeight = pageFormat.getImageableHeight();
double pageWidth = pageFormat.getImageableWidth();
double scale = pageWidth/panelWidth;
int totalNumPages = (int)Math.ceil(scale * panelHeight / pageHeight);
if(pageIndex >= totalNumPages)
return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D)pg;
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
g2.translate(0f, -pageIndex * pageHeight);
g2.scale(scale, scale);
return Printable.PAGE_EXISTS;
Does anyone have any ideas on how to fix this?
selvas kumars
Ranch Hand

Joined: Jan 06, 2001
Posts: 115
Hi Chris,
I want a solution from you.
Are you using textpane.setEditorKit(new HTMLEditorKit()) and
setting the doc to the textpane?? If so how to make the portion of the text in the textpane to be (bold,italic,unedrline,foreground) by selecting and clicking buttons on the toolbar on the top??
Chris Behr

Joined: Jun 12, 2001
Posts: 17
No I don't use the HTMLEditorKit. I just create the html in a file and then use .setPage( to insert the HTML into the JTextPane. I still haven't figured my problem out. I can change the font size and it affects how it looks on the JTextPane but when I print it always comes out the same size. Does anyone have any ideas?
Niranjan venkatachari

Joined: May 19, 2003
Posts: 1
Hi Chris,
I am facing the same problem while using the JEditorPane..I hope by this time u would have found solution for it..It would be highly helpful if you could let me know..
Best Regards,
I agree. Here's the link:
subject: Page size when printing html from JTextPane
It's not a secret anymore!