Java の Printer Api の経験はほとんどありません。現在、LinuxサーバーでホストされているJavaエンタープライズアプリケーションに取り組んでおり、このアプリケーションはいくつかのドキュメントを印刷します。実際に使用しています
javax.print
この状況を管理するためのパッケージ。これは、印刷に使用しているコードです。
FileInputStream in = new FileInputStream(fileToPrint);
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
Doc doc = new SimpleDoc(in, flavor, null);
DocPrintJob job = myService.getPrintService().createPrintJob();
PrintJobWatcher pjw = new PrintJobWatcher(job,daProcessare);
job.print(doc, pras);
pjw.waitForDone();
in.close();
public PrintJobWatcher(DocPrintJob job,FatturaCodaInvio fileToProcess) {
job.addPrintJobListener(new PrintJobAdapter() {
public void printJobCanceled(PrintJobEvent pje) {
System.out.println("Print Canceled");
allDone(false,"Print Canceled");
}
public void printJobCompleted(PrintJobEvent pje) {
System.out.println("Print Completed");
allDone(true,"Print Completed");
}
public void printJobFailed(PrintJobEvent pje) {
System.out.println("Print failed");
allDone(false,"Print failed");
}
public void printJobNoMoreEvents(PrintJobEvent pje) {
System.out.println("Print No More Events");
allDone(true,"Print No More Events");
}
void allDone(boolean esito, String info) {
synchronized (PrintJobWatcher.this) {
System.out.println("Printing done ...");
PrintJobWatcher.this.notify();
}
}
});
}
状況によっては、プリンターをほとんど制御できません。たとえば、プリンターの準備ができていない場合や問題がある場合は、ドキュメントを送信する前にプリンターのステータスを確認したいと思います。これを行うために私はグーグルで調べており、いくつかのライブラリがcups4jにあり、おそらく私を助けることができることを発見しました。これと同じ問題に遭遇した人はいますか?これについて何か提案をいただけますか?