|
|
|||||||||
|
|||||||||
|
|||||||||
| |
|||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
please help !!!!!!!!!!!!!!!!!!!!!!!!!
hi,
i am new in java, i am trying to print string to my printer i found some code from the sun website, however it doesnt seem to do the job; there is mainly two problems: 1) the printer or the code doesnt recognize the '\n' in the string to be printed 2) it doesnt seem to print multiple pages; i tried typing a huge string spanning over one page but it just prints up to one page here is the code: /* * Created on Apr 3, 2004 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package processing; import java.awt.*; import java.awt.font.*; import java.awt.geom.*; import java.awt.print.*; import java.text.*; /** * The PrintText application expands on the * PrintExample application in that it images * text on to the single page printed. */ public class PrintText implements Printable { /** * The text to be printed. */ private static final String mText = "Four score and \n seven years ago our fathers brought forth on this " + "government \n of the people, by the people, for the people shall " +'\n'+ "not perish from the earth."; /** * Our text in a form for which we can obtain a * AttributedCharacterIterator. */ private static final AttributedString mStyledText = new AttributedString(mText); /** * Print a single page containing some sample text. */ static public void main(String args[]) { /* 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. This example has a single page containing * text. */ Book book = new Book(); book.append(new PrintText(), 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. This is an optional step * and need not be done if the application wants to perform * 'quiet' printing. 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) { /* We'll assume that Jav2D is available. */ Graphics2D g2d = (Graphics2D) g; /* Move the origin from the corner of the Paper to the corner * of the imageable area. */ g2d.translate(format.getImageableX(), format.getImageableY()); /* Set the text color. */ g2d.setPaint(Color.black); /* Use a LineBreakMeasurer instance to break our text into * lines that fit the imageable area of the page. */ 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; } } any help or suggestions would much appreciated thanks |
![]() |
| Viewing: Dev Articles Community Forums > Programming > Java Development > please help !!!!!!!!!!!!!!!!!!!!!!!!! |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|