04. februar 2004 - 09:33
Der er
2 kommentarer og
1 løsning
Java applet som kan håndterer print af to linier text
Jeg vil prøve at lave en applet som kan håndterer udprint fra min html side, og kunne bruge lidt hjælp til at komme igang.
Basalt skal den bestå af to linier text, og en knap til at printe, eller den skal printes automatisk. Der er visse krav til formatet af det udprintede...
Øverste linie: skriftype = Batang, fed, font 12
Nederste linie: skrifttype = Ariel Narrow, normal, font 7
eksempel:
0095462
P:325, 2654, 12 T:254
Det er disse to linier text som jeg skal have printet, og som jeg forventer at jeg skal have stående i min applet.
Udprintet skal sendes til en labelprinter, og jeg kan umiddelbart se at hvis det skal gå godt skal siden være i landscape, og alle marginer skal sættes til 0...
Men jeg er for at sige det mildt meget rusten, og i tidsnød. Kan i give noget start hjælp?
04. februar 2004 - 22:11
#1
Fik lige tid til strikke noget sammen.
Gem HTML-delen og applet i samme directory, som den er her, kan du ikke
udskrive hvis den køres via appletviewer, men det ruller i IE.
Java.
import java.awt.print.Printable;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Font;
import java.awt.print.Paper;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import java.awt.print.PrinterException;
public class LabelApplet extends javax.swing.JApplet
implements Printable{
public void init() {
initComponents();
}
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
lineOne = new javax.swing.JTextField();
lineTwo = new javax.swing.JTextField();
udskriv = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
getContentPane().setLayout(new java.awt.GridBagLayout());
jLabel1.setText("Udskrivning af labels");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 4;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
getContentPane().add(jLabel1, gridBagConstraints);
jLabel2.setText("Linie 1.");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
getContentPane().add(jLabel2, gridBagConstraints);
lineOne.setPreferredSize(new java.awt.Dimension(250, 20));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
getContentPane().add(lineOne, gridBagConstraints);
lineTwo.setPreferredSize(new java.awt.Dimension(250, 20));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
getContentPane().add(lineTwo, gridBagConstraints);
udskriv.setText("Udskriv");
udskriv.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
printLabel(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 3;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
getContentPane().add(udskriv, gridBagConstraints);
jLabel3.setText("Linie 2.");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
getContentPane().add(jLabel3, gridBagConstraints);
}
private void printLabel(java.awt.event.ActionEvent evt) {
PrinterJob pJob = PrinterJob.getPrinterJob();
PageFormat format = pJob.defaultPage();
Paper paper = format.getPaper();
paper.setImageableArea(0, 0 , paper.getWidth(), paper.getHeight() );
format.setPaper(paper);
format.setOrientation(format.LANDSCAPE);
pJob.setPrintable(this, format);
try{
pJob.print();
}
catch(Exception exception){
exception.printStackTrace();
}
}
public int print(Graphics g, PageFormat pFormat, int pageIndex)
throws java.awt.print.PrinterException {
Graphics2D g2 = (Graphics2D)g;
if(pageIndex == 0){
g2.setFont(new Font("Batang", Font.BOLD, 12));
g2.drawString(lineOne.getText() , 35, 20);
g2.setFont(new Font("Arial Narrow", Font.PLAIN, 7));
g2.drawString(lineTwo.getText() , 35, 30);
return PAGE_EXISTS;
}
return NO_SUCH_PAGE;
}
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField lineOne;
private javax.swing.JTextField lineTwo;
private javax.swing.JButton udskriv;
}
HTML XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<HTML>
<HEAD>
<TITLE>Printing labels</TITLE>
</HEAD>
<BODY>
<P>
<APPLET code="LabelApplet.class" width=350 height=200></APPLET>
</P>
</BODY>
</HTML>