gpt4 book ai didi

java - 如何在 java "Share Simple code for beginners"中同时打印文本和图像

转载 作者:行者123 更新时间:2023-11-29 03:38:17 25 4
gpt4 key购买 nike

我目前正在为一个行业开发发票生成/账单打印系统。

我需要一个打印文本以及公司形象标志的代码。

这里我给出了我创建的 JFrame 代码,我需要一个打印代码,它通过从作为后端的 SQL 2008 服务器获取数据来打印文本和图像。

here its is a code of netbeans frame 
here i need action implementation on Print Button below:

plz help me soon providing a appropriate way to print text and image.


package invoice2;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.HeadlessException;
import java.awt.image.BufferedImage;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import java.awt.print.*;
import java.awt.print.PageFormat;
import javax.swing.JTextPane;
import java.awt.print.PrinterException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.Sides;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileNameExtensionFilter;



/**
*
* @author Admin Param
*/
public class generate extends javax.swing.JInternalFrame {

/**
* Creates new form generate
*/
public generate() {
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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanel1 = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
t7 = new javax.swing.JTextField();
t1 = new javax.swing.JTextField();
t2 = new javax.swing.JTextField();
t3 = new javax.swing.JTextField();
t5 = new javax.swing.JTextField();
t6 = new javax.swing.JTextField();
t4 = new javax.swing.JScrollPane();
t9 = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
d1 = new com.toedter.calendar.JDateChooser();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
logo = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
print = new javax.swing.JButton();
jSeparator2 = new javax.swing.JSeparator();
jLabel10 = new javax.swing.JLabel();

setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
setTitle("Generate Bill/Print Invoice");
setToolTipText("");
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, -18, 490, 20));

jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel1.setText("No. Of Item :");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(35, 20, 90, -1));

jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel2.setText("Price of Item :");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(35, 60, 90, -1));

jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel3.setText(" Tex :");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 280, -1, 30));

jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel4.setText("Invoice No :");
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(41, 90, 80, 21));

jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel5.setText(" Billing Address :");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 130, -1, 21));

jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel6.setText(" Sub Total :");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 240, 80, 30));

jLabel8.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel8.setText(" Total :");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 330, -1, -1));

jLabel9.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jLabel9.setText(" Date :");
jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 210, -1, -1));

t7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t7ActionPerformed(evt);
}
});
jPanel1.add(t7, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 320, 140, 30));

t1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t1ActionPerformed(evt);
}
});
jPanel1.add(t1, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 10, 140, 30));

t2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t2ActionPerformed(evt);
}
});
jPanel1.add(t2, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 50, 140, 30));

t3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t3ActionPerformed(evt);
}
});
jPanel1.add(t3, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 90, 140, 30));

t5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t5ActionPerformed(evt);
}
});
jPanel1.add(t5, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 240, 140, 30));

t6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t6ActionPerformed(evt);
}
});
jPanel1.add(t6, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 280, 140, 30));

t9.setColumns(20);
t9.setRows(5);
t4.setViewportView(t9);

jPanel1.add(t4, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 130, 180, 60));

jButton1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jButton1.setText("Generate Total");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 310, 150, 40));
jPanel1.add(d1, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 200, 160, 30));

jButton4.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
jButton4.setText("Generate SubTotal");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 230, 150, 40));

jButton5.setText("image ");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jPanel1.add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 10, 100, 40));

logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/invoice2/big.jpg"))); // NOI18N
jPanel1.add(logo, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 70, 130, 130));

getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, 510, 360));

jLabel7.setText(" Tex :");
getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 180, -1, 21));

jButton2.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
jButton2.setText("Exit");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 410, 120, 40));

jButton3.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
jButton3.setText("Save ");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 410, 120, 40));

print.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
print.setText("Print ");
print.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
printActionPerformed(evt);
}
});
getContentPane().add(print, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 410, 130, 40));
getContentPane().add(jSeparator2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 18, 480, 10));

jLabel10.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
jLabel10.setText(" Welcome To Invoice Print/Bill Generator Software By ArtSheoran");
getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 0, 510, 20));

pack();
}// </editor-fold>

private void t7ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void t1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void t2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void t3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void t5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void t6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
dispose(); // TODO add your handling code here:
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

@SuppressWarnings("empty-statement")
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=invoice;integratedSecurity=true";
Connection con = DriverManager.getConnection(connectionUrl);
PreparedStatement pstmt=con.prepareStatement("insert into record values(?,?,?,?,?,?,?,?)");

int f1=Integer.parseInt(t1.getText());
pstmt.setInt(1,f1);

int f2=Integer.parseInt(t2.getText());
pstmt.setInt(2,f2);

int f3=Integer.parseInt(t3.getText());
pstmt.setInt(3,f3);

pstmt.setString(4,t9.getText());

java.util.Date date=d1.getDate();
String d=String.format("%1$tm-%1$td-%1$ty",date);
pstmt.setString(5,d);

int f4=Integer.parseInt(t5.getText());
pstmt.setInt(6,f4);

int f5=Integer.parseInt(t6.getText());
pstmt.setInt(7,f5);

int f6=Integer.parseInt(t7.getText());
pstmt.setInt(8,f6);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(null,"record saved successfully");
}
catch(ClassNotFoundException | SQLException | NumberFormatException | HeadlessException ob)
{
JOptionPane.showMessageDialog(null, ob.toString());
} // TODO add your handling code here:
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

int nitem=Integer.parseInt(t1.getText());
int price=Integer.parseInt(t2.getText());
int s=nitem*price;
t5.setText(Integer.toString(s));// TODO add your handling code here:
}

private void printActionPerformed(java.awt.event.ActionEvent evt) {


// here need a action under print button for text and image printing.


}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=invoice;integratedSecurity=true";
Connection con = DriverManager.getConnection(connectionUrl);
PreparedStatement pstmt=con.prepareStatement("insert into saveimage values(?,?,?,?)");
pstmt.setString(1,"mahendra");
pstmt.setString(2,"Delhi");
pstmt.setString(4,"123456");
JFileChooser chooser = new JFileChooser();
String str="";
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File ob=chooser.getSelectedFile();
str=ob.getPath();
Icon img = new ImageIcon(str);
logo.setIcon(img);
pstmt.setString(3, str);

//executeUpdate() method execute specified sql query. Here this query
//insert data and image from specified address.
int s = pstmt.executeUpdate();
if(s>0) {
JOptionPane.showMessageDialog(null, "File Uploaded Sucessfully");;
}
else {
JOptionPane.showMessageDialog(null, "File Not uploaded a error has been occured");
}
}
}
catch (ClassNotFoundException | SQLException | HeadlessException ex) {
System.out.println("Found some error : "+ex);
} // TODO add your handling code here:
}


// Variables declaration - do not modify
private com.toedter.calendar.JDateChooser d1;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JLabel logo;
private javax.swing.JButton print;
private javax.swing.JTextField t1;
private javax.swing.JTextField t2;
private javax.swing.JTextField t3;
private javax.swing.JScrollPane t4;
private javax.swing.JTextField t5;
private javax.swing.JTextField t6;
private javax.swing.JTextField t7;
private javax.swing.JTextArea t9;
// End of variables declaration

private static class OutputPrinter implements Printable {

public OutputPrinter(String printData) {
}

@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
throw new UnsupportedOperationException("Not supported yet.");
}
}
}


Plz help me soon and write appropriate guide.to implement action of printing text and image from a JInternal Frame and using SQL Server 2008.
a good answer is awaited.

最佳答案

您可以定义 HTML 并将其设置为 JTextPane。然后打印 JTextPane 的内容。

如果您需要多页打印,请参阅 http://java-sl.com/JEditorPanePrinter.html

关于java - 如何在 java "Share Simple code for beginners"中同时打印文本和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com