Avatar billede tri Nybegynder
22. maj 2002 - 23:14 Der er 2 kommentarer og
1 løsning

Java print komponent

Jeg skal bruge en Java/JSP komponent til udskrivning. (altså styres via Java's print API)

Jeg havde forestillet mig lidt ala et tegneprogram, hvor man kan skrive på en "plade", ændre skriftstørrelse,
indsætte billeder, og herefter udskrive DET MAN SER.

Der skal også være mulighed for at man skriver noget tekst på "pladen", og definerer nogle variabler på "pladen"
Disse variabler skal så loades fra mit system.

Jeg har ingen forventninger om at nogle skal lave dette for mig, men vil gerne vide hvad der findes af færdige komponenter på markedet.
Ikke nødvendigvis gratis.

Jeg leder efter så mange henvisninger som muligt. Gerne links.


På forhånd tak.
Avatar billede tri Nybegynder
24. maj 2002 - 09:53 #1
ingen hjælp?
Avatar billede torving Nybegynder
26. maj 2002 - 06:16 #2
Avatar billede r9 Nybegynder
30. maj 2002 - 20:46 #3
Jeg ved ikke om der finde en sådan komponent.

Men prøv disse 2 klasser. De kan skrive til en printer, dog kun tekst.


package utilities.print;

import java.awt.*;
import java.awt.print.*;

import javax.swing.JComponent;

public class ComponentPrintable
    implements Printable {
  private Component mComponent;

  public ComponentPrintable(Component c) {
    mComponent = c;
  }

  public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
    if (pageIndex > 0) return NO_SUCH_PAGE;
    Graphics2D g2 = (Graphics2D)g;
    g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    boolean wasBuffered = disableDoubleBuffering(mComponent);
    mComponent.paint(g2);
    restoreDoubleBuffering(mComponent, wasBuffered);
    return PAGE_EXISTS;
  }

  private boolean disableDoubleBuffering(Component c) {
    if (c instanceof JComponent == false) return false;
    JComponent jc = (JComponent)c;
    boolean wasBuffered = jc.isDoubleBuffered();
    jc.setDoubleBuffered(false);
    return wasBuffered;
  }

  private void restoreDoubleBuffering(Component c, boolean wasBuffered) {
    if (c instanceof JComponent)
      ((JComponent)c).setDoubleBuffered(wasBuffered);
  }
}




package utilities.print;

import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.*;
import javax.swing.event.*;

public class SwingPrinter extends JFrame {
  public static void main(String[] args) {
    new SwingPrinter();
  }

  private PageFormat mPageFormat;

  public SwingPrinter() {
    super("SwingPrinter");
    createUI();
    PrinterJob pj = PrinterJob.getPrinterJob();
    mPageFormat = pj.defaultPage();
    setVisible(true);
  }

  protected void createUI() {
    setSize(300, 300);

    JMenuBar mb = new JMenuBar();
    JMenu file = new JMenu("File", true);
    file.add(new FilePrintAction()).setAccelerator(
        KeyStroke.getKeyStroke(KeyEvent.VK_P, Event.CTRL_MASK));
    file.add(new FilePageSetupAction()).setAccelerator(
        KeyStroke.getKeyStroke(KeyEvent.VK_P,
            Event.CTRL_MASK | Event.SHIFT_MASK));
    file.addSeparator();
    file.add(new FileQuitAction()).setAccelerator(
        KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK));
    mb.add(file);
    setJMenuBar(mb);

    JTextArea t = new JTextArea();
    getContentPane().add(t);

    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }

  public class FilePrintAction extends AbstractAction {
    public FilePrintAction() {
        super("Print");
    }

    public void actionPerformed(ActionEvent ae) {
      PrinterJob pj = PrinterJob.getPrinterJob();
      ComponentPrintable cp = new ComponentPrintable(getContentPane());
      pj.setPrintable(cp, mPageFormat);
      if (pj.printDialog()) {
        try { pj.print(); }
        catch (PrinterException e) {
          System.out.println(e);
        }
      }
    }
  }

  public class FilePageSetupAction extends AbstractAction {
    public FilePageSetupAction() { super("Page setup..."); }
    public void actionPerformed(ActionEvent ae) {
      PrinterJob pj = PrinterJob.getPrinterJob();
      mPageFormat = pj.pageDialog(mPageFormat);
    }
  }

  public class FileQuitAction extends AbstractAction {
    public FileQuitAction() { super("Quit"); }
    public void actionPerformed(ActionEvent ae) {
      System.exit(0);
    }
  }
}
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