Я даже не знаю, возможно ли это, и я сильно сомневаюсь, что это так, но если вы можете, скажите, пожалуйста, как?Я просто хочу знать, как напечатать какой-нибудь текст с принтера.
Есть мысли?
Вот кое-что еще проще.
import javax.swing.JTextPane; import java.awt.print.PrinterException; public class TestPrint { public static void main(String[] args) throws PrinterException { JTextPane textPane = new JTextPane(); textPane.setText("test text string - Hello World! Are you there?"); textPane.print(); } }
Вывод: всплывающее окно
Что вы можете сделать, это записать в файл, а затем вы можете использовать класс Desktop для его печати.Для получения дополнительной информации о классе рабочего стола перейдите здесь
Desktop
here is the program import java.awt.Desktop; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class abc { public static void main(String[] args) throws IOException{ BufferedWriter out = new BufferedWriter(new FileWriter("1.txt")); out.write("Hello this is a test"); out.flush(); out.close(); File ff = new File("1.txt"); Desktop desktop = Desktop.getDesktop(); desktop.print(ff); }
}
import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintException; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.SimpleDoc; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.Copies; import javax.print.event.PrintJobAdapter; import javax.print.event.PrintJobEvent; public class PrintText { public static void main(String[] args) throws PrintException, IOException { String defaultPrinter = PrintServiceLookup.lookupDefaultPrintService().getName(); System.out.println("Default printer: " + defaultPrinter); PrintService service = PrintServiceLookup.lookupDefaultPrintService(); // prints the famous hello world! plus a form feed InputStream is = new ByteArrayInputStream("hello world!\f".getBytes("UTF8")); PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); pras.add(new Copies(1)); DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; Doc doc = new SimpleDoc(is, flavor, null); DocPrintJob job = service.createPrintJob(); PrintJobWatcher pjw = new PrintJobWatcher(job); job.print(doc, pras); pjw.waitForDone(); is.close(); } } class PrintJobWatcher { boolean done = false; PrintJobWatcher(DocPrintJob job) { job.addPrintJobListener(new PrintJobAdapter() { public void printJobCanceled(PrintJobEvent pje) { allDone(); } public void printJobCompleted(PrintJobEvent pje) { allDone(); } public void printJobFailed(PrintJobEvent pje) { allDone(); } public void printJobNoMoreEvents(PrintJobEvent pje) { allDone(); } void allDone() { synchronized (PrintJobWatcher.this) { done = true; System.out.println("Printing done ..."); PrintJobWatcher.this.notify(); } } }); } public synchronized void waitForDone() { try { while (!done) { wait(); } } catch (InterruptedException e) { } } }
Следуя комментариям Man o War и bmargulies, ознакомьтесь с Учебным уроком по печати Java * и API печати Java .
(в первую очередь публикуя этот ответв попытке либо получить к этому вопросу дополнительное внимание / конкурентные ответы, либо, по крайней мере, просто убрать его из растущего списка оставшихся без ответа вопросов.)