-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.2.0
-
x86
-
windows_nt
NT 4.0 / Service pack 3,
Using HP 4M Plus printer on the network.
Thanks,
Rip
(Review ID: 49129)
======================================================================
Name: dbT83986 Date: 01/06/99
I am experiencing 15 minute print times if I have just one image in my print job.
1. Steps: Just invoke printing programatically using a JComponent that implements the Printable interface.
2. Source code:
package ps.somepackagename;
import java.awt.Graphics2D;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.awt.Point;
import java.awt.geom.AffineTransform;
import java.awt.RenderingHints;
import java.awt.Dimension;
import java.awt.Cursor;
import java.awt.Frame;
import java.awt.Font;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JComponent;
import javax.swing.ToolTipManager;
import javax.swing.JToolTip;
public class DgmComponent extends JComponent implements Printable
{
// .
// .
// .
// .
// .
// .
// .
// .
// .
// .
// .
/**
* Start the printing programatically.
*/
public void print(SomePrintInvokingChild child)
{
double width = (double) getWidth();
double height = (double) getHeight();
// Add room for the diagram title.
// Font font = someObject.getFont();
int fontHeight = 16; // font.getSize();
height += 3 * fontHeight;
Paper paper = new Paper();
paper.setSize(width, height);
paper.setImageableArea(0.0, 0.0, width, height);
PageFormat pf = new PageFormat();
pf.setPaper(paper);
PrinterJob pj = PrinterJob.getPrinterJob();
String jobName = "The Title ..."; // someObject.getTitle();
if (jobName != null)
{
pj.setJobName(jobName);
}
pj.setPrintable(this, pf);
if (pj.printDialog())
{
try
{
pj.print();
}
catch(Exception e)
{
}
}
}
/**
* Printable.print():
*/
public int print(Graphics g, PageFormat pageFormat, int pageIndex)
{
// Page index 0 corresponds to page 1.
if (pageIndex > 0)
{
return(NO_SUCH_PAGE);
}
Graphics2D g2 = (Graphics2D) g;
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
// Font font = someObject.getFont();
int fontHeight = 16; // font.getSize();
String title = "The Title ..."; // someObject.getTitle();
if (title != null)
{
g2.setColor(Color.black);
g2.drawString(title , 0, fontHeight);
}
g2.translate(0, 3 * fontHeight);
// .
// .
// .
// .
// .
// Similar to paint code in some other object:
g2.setPaint(Color.white);
g2.fillRect(0, 0, 400, 400);
g2.setPaint(Color.black);
g2.drawRect(0, 0, 400, 400);
g2.setPaint(Color.white);
g2.fillRect(200, 200, 100, 100);
g2.setPaint(Color.black);
g2.drawRect(200, 200, 100, 100);
// With the following image code commented out, the print time is
// less than 15 seconds. With it enabled, the print time is fifteen
// minutes.
Image image = // This is where I load the .gif image: someObject.getImage();
if (image != null)
{
// I usually give it a valid ImageObserver but null yields
// the same result for this test.
//
// g2.drawImage(image, 220, 220, someObject.imageLoader);
g2.drawImage(image, 220, 220, null);
}
// .
// .
// .
// .
// .
// .
// .
return(PAGE_EXISTS);
}
// .
// .
// .
// .
// .
// .
// .
// .
// .
// .
// .
}
3. Errors messages: none
4. Trace information: printing the graphics context on multiple calls to print():
---------------------------------------
WITHOUT IMAGE:
DgmComponent.print():
sun.java2d.PeekGraphics[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=255
,g=255,b=255]]
DgmComponent.print():
sun.awt.windows.WPathGraphics[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=255
,g=255,b=255]]
---------------------------------------
WITH IMAGE:
DgmComponent.print():
sun.java2d.PeekGraphics[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=255
,g=255,b=255]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color [r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
DgmComponent.print():
sun.java2d.ProxyGraphics2D[font=java.awt.Font[family=dialog
,name=Dialog,style=plain,size=12],color=java.awt.Color[r=0,g=0
,b=0]]
5. Additional configuration information:
JDK 1.2 final,
- duplicates
-
JDK-4197648 Printing moderatly large images takes FOREVER...
-
- Closed
-