Printing in Java Application

Posted on 1998-02-16
Last Modified: 2013-11-23
A rather simple question I hope. How do I print the text within a component in Java? or print the
 contents of a file? For example, in a TextArea? I see there is a printall method for graphics but it only
 does a screen snap shot and not the contents of the component. I looked into the System.out.println but
 not sure how to reroute the standard output stream. If possible?


Question by:bcsystem
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4

Accepted Solution

ammorris earned 100 total points
ID: 1233074
Using the PrintJob class a good way to print.  If you don't want your printout to look the same as your component, you can do this with your paint() method:

if (g instanceof PrintGraphics) // this is the interface given for printAll calls
   // do printout how you want it, use normal graphics calls like    // drawString(), etc.
   // your normal paint or super.paint(g)

Just get a PrintJob object from the Toolkit, do a printAll, and dispose of the Graphics object.  It should do the special printing you want.

Author Comment

ID: 1233075
Can you give me an example of how I would print text from within a textarea class to a print?


Expert Comment

ID: 1233076
Read the text line by line from the text area and drawString() it on the Graphics object.  Or you might be able to call textArea.paint(g).
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 1233077
Below is a sample bit of code I have..

void print_Clicked(Event event) {

      PrintJob pjob = getToolkit().getPrintJob(this,"Printing Test", null);

    if (pjob != null)
      Graphics pg = pjob.getGraphics();

      if (pg != null)
        String tempx = codeTextBox.getText();
        pg.dispose(); // flush page

The program GPFs when it hits the drawString method.  Is it Visual Cafe 1.1 bug?


Expert Comment

ID: 1233078
I don't know... that should work, it's the way my co-worker and I did it.  I have never used Visual Cafe, so I don't know.  The way I was suggesting was to put that drawString call in your paint method, calling it only if the graphics object implemented the PrintGraphics interface.

Java programs should never GPF, is that right?

Author Comment

ID: 1233079
This is what I get below..I get the windows GPF box and when I click on shows

JAVA caused an invalid page fault in
module WINAWT.DLL at 0137:1000c8c4.
EAX=00000000 CS=0137 EIP=1000c8c4 EFLGS=00010202
EBX=00e7af88 SS=013f ESP=020afd2c EBP=020afd38
ECX=ffffff4c DS=013f ESI=00e83a10 FS=39d7
EDX=00000000 ES=013f EDI=007a3370 GS=0000
Bytes at CS:EIP:
8b 08 8b 51 14 8b 1a 8b 4b 08 85 c9 74 1b 8b 4d
Stack dump:
020afd74 020afd70 00000000 020afee0 1001d30d 00e7af88 00e83a10 00000000 00000000 00e7af88 00e7ac40 21c87727 020afd70 020afee0 01f6d360 007a2920

Expert Comment

ID: 1233080
Sounds like a bug.  It works with Sun's VM.


Author Comment

ID: 1233081
I still continue to have problems with printing.  I'm trying to determine if this is a Visual Cafe problem or Sun VM.  Does anyone have a simple print application that I can compile and test with JDK 1.1?

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
hibernate example using maven 12 103
ejb entity bean example 2 51
Java basic valueOf question 1 45
How to find out if all executorservice threads have finished 2 6
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Suggested Courses

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question