Monday, July 21, 2008

Printing AWT Component Without Print Dialog

Please read previous article Printing JTextArea component now find:
try {
text.print();
} catch (PrinterException ex) {
}
replace with:
PrinterJob printJob = PrinterJob.getPrinterJob();
class Job implements Printable {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex >= 1) {
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2 = (Graphics2D) graphics;
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
text.paint(graphics);
return Printable.PAGE_EXISTS;
}
}
printJob.setPrintable(new Job());
try {
printJob.print();
} catch (Exception ex) {
}
now awt component will print without showing print dialog.

Conclusion:
We can directly print Printable using PrinterJob.print();
Complete Source Code:
/*
* PrintingTextOnJTextArea.java
*
* Created on 17 Juli 2008, 14:07
*/
package org.kazao.tips.tip019;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

/**
*
* @author Vanya Terra Ardani
*/
public class PrintingTextOnJTextAreaWithoutPrintDialog extends javax.swing.JFrame {

/** Creates new form PrintingTextOnJTextArea */
public PrintingTextOnJTextAreaWithoutPrintDialog() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {

scroller = new javax.swing.JScrollPane();
text = new javax.swing.JTextArea();
buttonPrint = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Printing JTextArea componen");

scroller.setName("scroller"); // NOI18N

text.setFont(new java.awt.Font("Courier New", 0, 13));
text.setText("Item Qty Price Sub Total\n==================================================\nShampo Sunsilk 100ml 10 10.500,00 105.000,00\nHead&Shoulder 150ml 5 12.750,00 63.750,00\nRinso Warna 2kg 1 18.200,00 18.200,00\nCoca-cola Zero 1500 10 6.700,00 67.000,00\n==================================================\nTotal: 253.950,00");
text.setName("text"); // NOI18N
scroller.setViewportView(text);

buttonPrint.setText("Print");
buttonPrint.setName("buttonPrint"); // NOI18N
buttonPrint.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPrintActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(scroller, javax.swing.GroupLayout.DEFAULT_SIZE, 408, Short.MAX_VALUE)
.addComponent(buttonPrint))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(scroller, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonPrint)
.addContainerGap())
);

pack();
}//
//GEN-END:initComponents

private void buttonPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPrintActionPerformed
PrinterJob printJob = PrinterJob.getPrinterJob();
class Job implements Printable {

@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex >= 1) {
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2 = (Graphics2D) graphics;
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
text.paint(graphics);
return Printable.PAGE_EXISTS;
}
}
printJob.setPrintable(new Job());
try {
printJob.print();
} catch (Exception ex) {
ex.printStackTrace();
}

}//GEN-LAST:event_buttonPrintActionPerformed

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new PrintingTextOnJTextAreaWithoutPrintDialog().setVisible(true);
}
});
}

// Variables declaration - do not modify//GEN-BEGIN:variables
public javax.swing.JButton buttonPrint;
public javax.swing.JScrollPane scroller;
public javax.swing.JTextArea text;
// End of variables declaration//GEN-END:variables
}
Diposting oleh M. Jumari di Monday, July 21, 2008
Label: English, Java, Printing, Swing, Tips and Tricks, Tutorial

0 komentar:

Post a Comment

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

About Me

My Photo
My name is M. Jumari @cyberworld i'am also known as Kazao aka Kazao™ aka Mr. Kazao. I'am a simply man enjoying life in a beautifull country.
     All source code you get from here is absolutely free. You may view my complete profile or view my website.

Messenger

m.jumari

Archive

  • April 2009 (6)
  • March 2009 (1)
  • January 2009 (3)
  • December 2008 (4)
  • October 2008 (1)
  • September 2008 (5)
  • August 2008 (12)
  • July 2008 (20)
  • May 2008 (2)

Labels

  • Bahasa Indonesia (29)
  • Berita (1)
  • Cuap-Cuap (3)
  • Curhat (10)
  • English (18)
  • Filosofi (1)
  • Foto (2)
  • Gambar (5)
  • Java (17)
  • Joke (2)
  • JPanel (2)
  • JTable (2)
  • JTextArea (1)
  • JTree (3)
  • Printing (2)
  • Reflection (1)
  • Swing (10)
  • Tips and Tricks (21)
  • Trojan (1)
  • Tutorial (17)
  • Video (1)
  • Virus (1)

Friends

  • Tikabanget™
    Hello world!
    1 week ago
  • Herman Saksono
    Siapa Mau Sewa Mario Ozawa?
    1 week ago
  • Herwin Saputra
    Terdampar
    2 weeks ago
  • Mama Vino
    KBB#18 – French Macarons
    5 weeks ago
  • Obie XP
    819936000 + n detik (n=n+1)
    4 months ago
  • Oktarianti
    Banda Aceh
    6 months ago
  • Indra Wahyudi
    Pesan Itu Mengisyaratkan "BAHAYA"
    1 year ago
  • A r l e y N o v a ™
    why marry?
    1 year ago
  • Dony Iswantoro
    Tentang seorang "Pangeran"
    1 year ago
  • Akhmad Fathonih
    Finally, a proper kde 4.2
    1 year ago
  • The Vemo™
    Terima Kasih
    1 year ago
  • Harvey
    Kekuatan Maaf
    2 years ago
  • Teguh Susanto
    Bermain Seks Gunakan Otak....
    2 years ago
Show 5 Show All

Links

  • artikel mantab

Subscribe

Posts
Atom
Posts
Comments
Atom
Comments

Ketawa.com

Loading...

World Clocks

Followers

Widgets

Google Groups
Berlangganan ke informatika98
Email:
Kunjungi grup ini
Google Groups
informatics-uii
Kunjungi grup ini
Kazao™

YouTube

Loading...
Copyright © M. Jumari 2008 Powered by www.blogger.com
Visit my web @ mr.kazao.net and you can call me @ +6281904091661 or +622743251763