Hi all i'm new to JSF,
I have created a java file, I need this to run when a user presses a button on the XHTML page, how do i do this ? also are there any good tutorials for beginners like me out there for JSF ? Thanks :)
The JAVA code is a simple piece of code that allows a user to select a txt file and then print it.
The aim is to create a web app to allow printing of documents
Here is the JAVA code I wish to run:
import java.awt.*; import java.awt.font.*; import java.awt.geom.*; import java.awt.print.*; import java.text.*; import java.io.*; import javax.swing.*; import java.util.List; import java.util.ArrayList; public class PrintText implements Printable { private String text; // Constructor argument for AttributedString. // Below the code will allow the user to select a file and then print out the contents of the file public static void main(String[] args) throws IOException { new PrintText(); } public PrintText() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } //selects the file JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File file = chooser.getSelectedFile(); String filename = file.getName(); //System.out.println("You have selected: " + filename); testing to see if file seleected was right String path = file.getAbsolutePath(); //Reads contents of file into terminal //FileReader fr = new FileReader("filename"); // FileReader fr = new FileReader("D:/Documents/" + "filename")); BufferedReader br = null; try { br = new BufferedReader(new FileReader(path)); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = br.readLine()) != null) { //System.out.println(line); //This is now not needed, was used to test to see if the contents was recieved corrently stringBuilder.append(line).append("\n"); } text = stringBuilder.toString();; printer(); } catch (IOException exp) { exp.printStackTrace(); } finally { try { br.close(); } catch (Exception e) { e.printStackTrace(); } } //fr.close(); } }); } //Testing //private static final String mText = // "This is a test to see if this text will be printed "; //This works perfectly fine //AttributedString mStyledText = new AttributedString(mText); /** * Print a single page containing some sample text. */ public void printer() { /* Get the representation of the current printer and * the current print job. */ PrinterJob printerJob = PrinterJob.getPrinterJob(); /* Build a book containing pairs of page painters (Printables) * and PageFormats. */ Book book = new Book(); book.append(this, new PageFormat()); /* Set the object to be printed (the Book) into the PrinterJob. * Doing this before bringing up the print dialog allows the * print dialog to correctly display the page range to be printed * and to dissallow any print settings not appropriate for the * pages to be printed. */ printerJob.setPageable(book); /* Show the print dialog to the user. If the user cancels the print dialog then false * is returned. If true is returned we go ahead and print. */ boolean doPrint = printerJob.printDialog(); if (doPrint) { try { printerJob.print(); } catch (PrinterException exception) { System.err.println("Printing error: " + exception); } } } /** * Print a page of text. */ public int print(Graphics g, PageFormat format, int pageIndex) { AttributedString mStyledText = new AttributedString(text); Graphics2D g2d = (Graphics2D) g; g2d.translate(format.getImageableX(), format.getImageableY()); g2d.setPaint(Color.black);// Sets text colour Point2D.Float pen = new Point2D.Float(); AttributedCharacterIterator charIterator = mStyledText.getIterator(); LineBreakMeasurer measurer = new LineBreakMeasurer(charIterator, g2d.getFontRenderContext()); float wrappingWidth = (float) format.getImageableWidth(); while (measurer.getPosition() < charIterator.getEndIndex()) { TextLayout layout = measurer.nextLayout(wrappingWidth); pen.y += layout.getAscent(); float dx = layout.isLeftToRight() ? 0 : (wrappingWidth - layout.getAdvance()); layout.draw(g2d, pen.x + dx, pen.y); pen.y += layout.getDescent() + layout.getLeading(); } return Printable.PAGE_EXISTS; } }