Java程序文本_我将如何从Java程序打印文本? (JAVA)

我什至不知道这是否可行,我对此表示高度怀疑,但如果可以的话,请您告诉我如何?

我只想知道如何从打印机打印一些文本.

有什么想法吗?

最佳答案

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!".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) {

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值