Avatar billede dannv Nybegynder
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?
Avatar billede _carsten Nybegynder
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>
Avatar billede dannv Nybegynder
06. februar 2004 - 08:56 #2
Ok.. jeg kigger lige på det i aften....
Avatar billede _carsten Nybegynder
28. februar 2004 - 22:22 #3
Er det blevet aften ??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester