所以即時通訊編寫一個Java程序,爲我的父親打印出收據和東西。我的初衷是打印出他的收據打印機關於他所做的每筆交易的一些信息。但是,打印機在打印我發送的內容時會遇到一些麻煩,而不會將其限制在極端點。JAVA - 打印XPS沒有文件名/位置彈出
我的下一個想法很成功,那就是將「收據」保存到XPS文件中,然後打印XPS,這樣不會剪切它,並且會使一切都變得更好。現在,我可以使用Microsoft的XPS Document Writer PrintService打印到XPS文件中。問題是,當我這樣做時,它總是彈出一個框,要求輸入文件名和位置。
有沒有辦法設置它以便根本不顯示彈出窗口?
當前代碼:
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
try {
job.print();
} catch (PrinterException ex) {
// The job did not successfully complete
}
-
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
String temp;
if (page > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
int lineSize=20;
Font testFont=new Font("Lucida Console", 0, 20);
g.setFont(testFont);
g.drawString(" Fatura/Recibo nº"+nmrRec+" ", 5, 20);
return PAGE_EXISTS;
}
這個代碼是剛剛從「文件」進行讀取和寫入新的XPS文件在C:\ Users \,對不對?我如何畫東西?以前我重寫PrinterJob的打印方法(自其摘要以來),我從那裏得到了一個Graphics2D。我可以使用該Graphics對象而不是輸入流構造「doc」嗎?如果是這樣,我該如何初始化它? –
BlueMoon93
代替InputStream,實現'java.awt.print.Printable'並將該實現對象傳遞給SimpleDoc構造函數。我已經相應地更新了代碼。 – VGR
工作過,非常感謝你=) – BlueMoon93