Print BufferedImage the result is blank

P

p7371464

Hi, every one

following are parameter set of my environment

/////////////////

OS: Win 7 64 bit
Java: java version "1.6.0_29" 32 bit
Test Printer: CutePDF Writer 2.8 ã€Microsoft XPS Document Writer

///////////

I try to print a image to printer, while the image file size is small the result is correct,
but while the file is large (jpeg format about 1.4 MB) the result is blank!!
I have assign -Xmx1024m to JVM.

following is the code to print, can any one give some suggestions
///////////////

public class TestPrinter2 {
public static void main(String[] args) throws Exception {
PrintService service = PrintServiceLookup.lookupDefaultPrintService();

PrintRequestAttributeSet set = new HashPrintRequestAttributeSet();

set.add(new Copies(1));


PrinterJob pj = PrinterJob.getPrinterJob();

if (pj.printDialog(set)) {

service = pj.getPrintService();

final BufferedImage img = ImageIO.read(new File("C:/TEMP/large.jpg"));

DocFlavor inFlavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;

Doc doc = new SimpleDoc(new Printable() {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0)
return Printable.NO_SUCH_PAGE;
Graphics2D g2d = (Graphics2D) graphics;
g2d.drawImage(img, (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(), (int)pageFormat.getWidth(), (int)pageFormat.getHeight(),null);
return Printable.PAGE_EXISTS;
}

}, inFlavor, null);

DocPrintJob job = service.createPrintJob();

job.print(doc, set);
}
}
}

//////////////////

thanks for reply
 
D

Daniele Futtorovic

Hi, every one

following are parameter set of my environment

/////////////////

OS: Win 7 64 bit
Java: java version "1.6.0_29" 32 bit
Test Printer: CutePDF Writer 2.8 ã€Microsoft XPS Document Writer

///////////

I try to print a image to printer, while the image file size is small the result is correct,
but while the file is large (jpeg format about 1.4 MB) the result is blank!!
I have assign -Xmx1024m to JVM.

following is the code to print, can any one give some suggestions
///////////////

public class TestPrinter2 {
public static void main(String[] args) throws Exception {
PrintService service = PrintServiceLookup.lookupDefaultPrintService();

PrintRequestAttributeSet set = new HashPrintRequestAttributeSet();

set.add(new Copies(1));


PrinterJob pj = PrinterJob.getPrinterJob();

if (pj.printDialog(set)) {

service = pj.getPrintService();

final BufferedImage img = ImageIO.read(new File("C:/TEMP/large.jpg"));

DocFlavor inFlavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;

Doc doc = new SimpleDoc(new Printable() {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0)
return Printable.NO_SUCH_PAGE;
Graphics2D g2d = (Graphics2D) graphics;
g2d.drawImage(img, (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(), (int)pageFormat.getWidth(), (int)pageFormat.getHeight(),null);
return Printable.PAGE_EXISTS;
}

}, inFlavor, null);

DocPrintJob job = service.createPrintJob();

job.print(doc, set);
}
}
}

//////////////////

thanks for reply
You sure there isn't a PrintException getting swallowed somewhere? Try
putting the body of your #print method in a try/catch block.
 
P

p7371464

Hi, every one

following are parameter set of my environment



OS: Win 7 64 bit
Java: java version "1.6.0_29" 32 bit
Test Printer: CutePDF Writer 2.8 ã€Microsoft XPS Document Writer



I try to print a image to printer, while the image file size is small the result is correct,
but while the file is large (jpeg format about 1.4 MB) the result is blank!!
I have assign -Xmx1024m to JVM.

following is the code to print, can any one give some suggestions


public class TestPrinter2 {
public static void main(String[] args) throws Exception {
PrintService service = PrintServiceLookup.lookupDefaultPrintService();

PrintRequestAttributeSet set = new HashPrintRequestAttributeSet();

set.add(new Copies(1));


PrinterJob pj = PrinterJob.getPrinterJob();

if (pj.printDialog(set)) {

service = pj.getPrintService();

final BufferedImage img = ImageIO.read(new File("C:/TEMP/large.jpg"));

DocFlavor inFlavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;

Doc doc = new SimpleDoc(new Printable() {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0)
return Printable.NO_SUCH_PAGE;
Graphics2D g2d = (Graphics2D) graphics;
g2d.drawImage(img, (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(), (int)pageFormat.getWidth(), (int)pageFormat.getHeight(),null);
return Printable.PAGE_EXISTS;


}, inFlavor, null);

DocPrintJob job = service.createPrintJob();

job.print(doc, set);






thanks for reply

You sure there isn't a PrintException getting swallowed somewhere? Try

putting the body of your #print method in a try/catch block.

thanks for reply Daniele,

I change my code and put the whole body of main method in a try block
and remove the throws PrinterException clause from print method declaration..

Finally I put the body of print method in a try block.


I execute my code again but the console not output any error message.


I type
java -Xmx1024m TestPrinter2

in console window to execute the code.
 
J

Joerg Meier

On Tue, 15 Oct 2013 01:56:33 -0700 (PDT), (e-mail address removed) wrote:

(as this is the more active group, I'm reposting my answer here)
OS: Win 7 64 bit
Java: java version "1.6.0_29" 32 bit

And that didn't strike you as odd ? I recommend starting by getting the
upropriate (and current) version of Java for your machine. Your Java
version is two years old and has many large and dangerous security flaws.
Note that Java 7 is the current version. Java 6 is no longer even supported
officially.

As for your problem, you are not giving the image any time to load, and
proceed to trying to print it without ever even checking if it was finished
loading, or loaded even partially.

I'm pretty rusty at loading Images through Java libraries, so I hope this
is the apropriate way, if not, maybe someone else here could correct me.
You get a decent example at

<http://docs.oracle.com/javase/7/docs/api/java/awt/MediaTracker.html>

and you don't need to worry about the Applet crap, but MediaTracker does
need a Component for some obscure reason. You can simply pass it a new
JFrame() and all should be good.

Liebe Gruesse,
Joerg
 
P

p7371464

On Tue, 15 Oct 2013 01:56:33 -0700 (PDT), (e-mail address removed) wrote:



(as this is the more active group, I'm reposting my answer here)







And that didn't strike you as odd ? I recommend starting by getting the

upropriate (and current) version of Java for your machine. Your Java

version is two years old and has many large and dangerous security flaws.

Note that Java 7 is the current version. Java 6 is no longer even supported

officially.



As for your problem, you are not giving the image any time to load, and

proceed to trying to print it without ever even checking if it was finished

loading, or loaded even partially.



I'm pretty rusty at loading Images through Java libraries, so I hope this

is the apropriate way, if not, maybe someone else here could correct me.

You get a decent example at



<http://docs.oracle.com/javase/7/docs/api/java/awt/MediaTracker.html>



and you don't need to worry about the Applet crap, but MediaTracker does

need a Component for some obscure reason. You can simply pass it a new

JFrame() and all should be good.



Liebe Gruesse,

Joerg



--

Ich lese meine Emails nicht, replies to Email bleiben also leider

ungelesen.

Thanks for your sugestion, Joerg.

The problem is resolved.

While I update my JDK to 7u45 64-bit.
The output is correct.

By the way, I try to install JDK 7u45 32-bit version, the output is stil remain blank.
The cause should be I not installed corresponded JVM version with my machine.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top